为了账号安全,请及时绑定邮箱和手机立即绑定

Java眼中的XML 文件写入

难度初级
时长 2小时 0分
学习人数
综合评分9.67
227人评价 查看评价
9.8 内容实用
9.7 简洁易懂
9.5 逻辑清晰
  • 在初始化一个类,生成一个实例的时候;newInstance() 和 new 有什么区别? 用newInstance与用new是区别的,区别在于创建对象的方式不一样,前者是使用类加载机制,那么为什么会有两种创建对象方式?这个就要从可伸缩、可扩展,可重用等软件思想上解释了。 Java中工厂模式经常使用newInstance来创建对象,因此从为什么要使用工厂模式上也可以找到具体答案。 例如: Class c = Class.forName(“A”);factory = (AInterface)c.newInstance(); 其中AInterface是A的接口,如果下面这样写,你可能会理解: String className = “A”;Class c = Class.forName(className);factory = (AInterface)c.newInstance(); 进一步,如果下面写,你可能会理解: String className = readfromXMlConfig;//从xml 配置文件中获得字符串Class c = Class.forName(className);factory = (AInterface)c.newInstance(); 上面代码就消灭了A类名称,优点:无论A类怎么变化,上述代码不变,甚至可以更换A的兄弟类B , C , D….等,只要他们继承Ainterface就可以。 从jvm的角度看,我们使用new的时候,这个要new的类可以没有加载; 但是使用newInstance时候,就必须保证:1、这个类已经加载;2、这个类已经连接了。而完成上面两个步骤的正是class的静态方法forName()方法,这个静态方法调用了启动类加载器(就是加载javaAPI的那个加载器)。 有了上面jvm上的理解,那么我们可以这样说,newInstance实际上是把new这个方式分解为两步,即,首先调用class的加载方法加载某个类,然后实例化。 这样分步的好处是显而易见的。我们可以在调用class的静态加载方法forName时获得更好的灵活性,提供给了我们降耦的手段。
    查看全部
    0 采集 收起 来源:创建 XML 文件

    2017-02-17

  • [补充:] newInstance: 弱类型。低效率。只能调用无参构造。 new: 强类型。相对高效。能调用任何public构造。 newInstance()是实现IOC、反射、面对接口编程 和 依赖倒置 等技术方法的必然选择,new 只能实现具体类的实例化,不适合于接口编程。 里面就是通过这个类的默认构造函数构建了一个对象,如果没有默认构造函数就抛出InstantiationException, 如果没有访问默认构造函数的权限就抛出IllegalAccessException
    查看全部
    0 采集 收起 来源:创建 XML 文件

    2017-02-17

  • public DocumentBuilder getDocumentBuilder(){ //创建一个DocumentBuilderFactory.newInstance(); DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); // 创建DocumentBuilder对象 DocumentBuilder db = null; try { db = dbf.newDocumentBuilder(); } catch (ParserConfigurationException e) { // TODO Auto-generated catch block e.printStackTrace(); } return db; } /** * 解析xml文件 */ public void xmlParser(){ // public static void main(String[] args) { // // 创建一个DocumentBuilderFactory.newInstance(); // DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); // 创建一个DocumentBuilder对象 try { // // 创建DocumentBuilder对象 // DocumentBuilder db = dbf.newDocumentBuilder(); // 通过DocumentBuilder对象的parse()方法加载books.xml文件到当前目录下 // Document document = db.parse("books.xml"); Document document = getDocumentBuilder().parse("books.xml");
    查看全部
  • /** * 生成xml */ public void creatXml(){ DocumentBuilder db = getDocumentBuilder(); Document document = db.newDocument(); Element bookstore = document.createElement("bookStore"); //向bookStore根节点中添加子节点book Element book = document.createElement("book"); book.setAttribute("id", "1"); //将book节点添加到bookstore根节点中 bookstore.appendChild(book); //将bookstore节点(已经包含了book)添加到dom树中 document.appendChild(bookstore); } /** * 主方法,程序的入口 */ public static void main(String[] args) { //创建DOMTest对象 DOMTest test = new DOMTest(); //调用解析方法,解析xml文件 test.xmlParser(); }
    查看全部
  • DOM创建DOM树: org.w3c.dom 1、DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); 2、DocumentBuilder db = dbf.newDocumentBuilder(); 3、Document document = db.newDocument(); //创建文档 4、Element rootElement = document.createElement(节点名); //创建节点(根节点) 5、document.appendChild(rootElement); //将根节点放入文档中 Document类方法: .createElement(节点名) 在文档中创建节点。(返回Element类型) .appendChild(Element) 将元素添加为子节点。 Element类方法: .appendChild(Element) 将元素添加为子节点。 .setAttibutes(Name,Value) 创建节点的属性。
    查看全部
  • 用DOM方法创建XML文件: 1、获取DocumentBuilderFactory对象: DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); 2、通过DocumentBuilderFactory对象,获取DocumentBuilder对象: DocumentBuilder db = dbf.newDocumentBuilder(); 3、通过DocumentBuilder的newDocument方法获取Document对象,代表着要生成的DOM树 Document do = db.newDocument(); 4、将根节点添加进DOM树 Element bookstore= document.createElement("bookStore"); document.appendChild(bookstore); 5、将子节点添加进DOM树 Element book = document.createElement("book"); bookstore.appendChild(book) 6、将子节点的属性及属性值添加进DOM树 book.setAttribute("id","1"); 即:通过当前节点的appendChild("节点名");方法为其添加子节点 通过document的createElement("节点名");方法来建立新的节点
    查看全部
  • } /*catch (ParserConfigurationException e) { e.printStackTrace(); }*/ catch (SAXException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } 原来是注释错了 难怪下面这地方会有语法错误: Document document = getDocumentBuilder().parse("books.xml"); 搞了那么久。。。
    查看全部
  • public DocumentBuilder getDocumentBuilder(){ 而不是 public void getDocumentBuilder(){ 居然犯这种低级错误,搞了半个钟
    查看全部
  • 我的电脑是:alt+上 //上移代码
    查看全部
  • JDOM设置XML文本的格式: Format fromat=Format.getCompactFormat(); format.setIndent(""); fromat.setEncodeing("GBK"); XMLOutputter outputer=new XMLOutputter(format);
    查看全部
  • JDOM生成XML不会转义的方法: Element title = new Element("title"); //title.setText("国内最新新闻"); CDATA cdata = new CDATA("<!上海移动互联网产业促进中心正式揭牌>"); title.addContent(cdata); channel.addContent(title);
    查看全部
  • JDOM 生成 XML 根节点 //1.生成一个根节点 Element rss = new Element("rss"); //2.为节点添加属性 rss.setAttribute("version", "2.0"); //3.生成一个document对象 Document document = new Document(rss); //4.创建XMLOutputter的对象 XMLOutputter outputer = new XMLOutputter(format); //5.利用outputer将document对象转换成xml文档 outputer.output(document, new FileOutputStream(new File("rssnews.xml")));
    查看全部
  • 使用DOM4J生成XML文件中节点以及节点内容的步骤 1,使用根节点对象得到子节点对象 Element ele1 = ele.addElement("String"); 2,设置子节点文本内容 ele1.setText("String"); 3,设置生成的XML文档的格式 OutputFormat format = OutputFormat.creatPrettyPrint(); 这个format对象默认为标准格式,需要其他格式可以调用该对象的其他方法如: format.setEncoding("GBK"); 4,将设置同步到XML文档 Writer write = new Writer(new FileOutputStream(file),format);
    查看全部
  • 使用DOM4J创建XML文件中rss根节点步骤 1,创建Document对象,代表着整个XML文档 Document do = DocumentHelper.createDocument(); 2,创建根节点rss Element rss = do.addElement("rss"); 3,向rss根节点中添加version属性 rss.addAttribute("version","2.0"); 4,创建XML文档的输出流 File file = new File("xxx"); XMLWriter writer = new XMLWriter(new FileOutputStream(file)); 5,将程序所写的XML文档内容与输出流联系起来 writer.write(do); 6,关闭资源 writer.close();
    查看全部
  • 通过SAX生成XML文件的节点步骤<br> 先生成外围节点在外围节点的startElement和endElement中间生成子节点<br> 分两种情况:<br> 1,有属性的节点<br> (1)创建属性对象,并设置属性名以及属性值<br> AttributesImpl ai =new AttributesImpl();<br> ai.addAttribute(null,null,name,null,value);<br> (2)创建节点<br> handler.startElement(null,null,name,ai)<br> (3)添加节点内容(若无内容则不用进行这一步)<br> handler.characters(String.toCharArray(),int,int);<br> (4)结束节点<br> handler.endElement(null,null,name);<br> 2,无属性的节点<br> (1)清空属性对象<br> ai.clear();<br> (2)创建节点<br> handler.startElement(null,null,name,ai)<br> (3)添加节点内容(若无内容则不用进行这一步)<br> handler.characters(String.toCharArray(),int,int);<br> (4)结束节点<br> handler.endElement(null,null,name);
    查看全部

举报

0/150
提交
取消
课程须知
本课程是 Java 的中级课程,需要各位小伙伴们熟悉 Java 面向对象的思想,并能熟练掌握 Java I/O 的相关知识。对什么是XML,如何读取XML有疑惑的小伙伴们,可以先去学习《Java眼中的XML---文件读取》进修。
老师告诉你能学到什么?
1、通过DOM方式生成xml文档 2、通过SAX方式生成xml文档 3、通过DOM4J方式生成xml文档 4、通过JDOM方式生成xml文档 5、不同生成方法大PK

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!