DOM4J解析xml文件001
来源:百度文库 编辑:神马文学网 时间:2024/04/29 08:15:11
虽然DOM4J 代表了完全独立的开发结果,但最初,它是JDOM 的一种智能分支。它合并了许多超出基本XML 文档表示的功能,包括集成的XPath 支持、XML Schema 支持以及用于大文档或流化文档的基于事件的处理。它还提供了构建文档表示的选项,它通过 DOM4J API 和标准DOM 接口具有并行访问功能。从 2000 下半年开始,它就一直处于开发之中。
为支持所有这些功能,DOM4J 使用接口和抽象基本类方法。DOM4J 大量使用了API 中的 Collections 类,但是在许多情况下,它还提供一些替代方法以允许更好的性能或更直接的编码方法。直接好处是,虽然 DOM4J 付出了更复杂的 API 的代价,但是它提供了比 JDOM 大得多的灵活性。
在添加灵活性、XPath 集成和对大文档处理的目标时,DOM4J 的目标与 JDOM 是一样的:针对 Java 开发者的易用性和直观操作。它还致力于成为比 JDOM 更完整的解决方案,实现在本质上处理所有 Java/XML 问题的目标。在完成该目标时,它比 JDOM 更少强调防止不正确的应用程序行为。 DOM4J 是一个非常非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件。如今你可以看到越来越多的 Java 软件都在使用 DOM4J 来读写 XML,特别值得一提的是连 Sun 的 JAXM 也在用 DOM4J。 注意: dom4j1.6解压后有一个dom4j-1.6.1.jar文件,这就是应用时需要引入的类包,另外还有一个jaxen-1.1-beta-6.jarr文件,一般也需要引入,否则执行时可能抛java.lang.NoClassDefFoundError: org/jaxen/JaxenException异常,其他的包可以选择用之。 举例说明: 创建一个emps.xml文档 package com.xml; import java.io.FileWriter; import java.io.IOException; import java.io.Writer; import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.dom4j.io.OutputFormat; import org.dom4j.io.XMLWriter; publicclass Dom4JXML { publicvoid createXML() { //用工厂类创建一个document实例 Document doc = DocumentHelper.createDocument(); //创建根元素emps Element rootEle = doc.addElement("emps"); //添加注释 rootEle.addComment("这是一个dom4j生成的xml文件"); //emps根节点下创建一个emp节点 Element empEle = rootEle.addElement("emp"); //emp添加属性id="1" empEle.addAttribute("id", "1"); //emp节点下创建一个name节点 Element nameEle = empEle.addElement("name"); //name节点下创建一个文本节点zhangsan nameEle.setText("zhangsan"); //再为name节点创建一个兄弟节点 Element sexEle = empEle.addElement("sex"); sexEle.setText("man"); //将document中的内容写入文件中 try { Writer out = new FileWriter("F:\\emps.xml"); //格式化输出,类型IE浏览一样 OutputFormat format = OutputFormat.createPrettyPrint(); //OutputFormat format = OutputFormat.createCompactFormat(); format.setEncoding("UTF-8"); //创建写出对象 XMLWriter writer = new XMLWriter(out,format); writer.write(doc); writer.close(); System.out.println("生成emps.xml成功。"); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); System.out.println("失败了。"); } } publicstaticvoid main(String[] args) { new Dom4JXML().createXML(); } } 文档内容: zhangsan man 将创建的emps.xml文档修改生成emps(update).xml 1. emp属性id 修改为:001 2. name中的文本修改为:张三 3. 删除emp下的sex属性 package com.xml; import java.io.FileWriter; import java.io.IOException; import java.io.Writer; import java.util.Iterator; import java.util.List; import org.dom4j.Attribute; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.dom4j.io.OutputFormat; import org.dom4j.io.SAXReader; import org.dom4j.io.XMLWriter; publicclass Dom4JXML { publicvoid updateXML(){ try { //创建读入对象 SAXReader reader = new SAXReader(); //创建document实例 Document doc = reader.read("F:\\emps.xml"); //查找节点emp下的id属性 List listAttr = doc.selectNodes("/emps/emp/@id"); Iterator itAttr = listAttr.iterator(); while(itAttr.hasNext()){ Attribute attr = (Attribute) itAttr.next(); //emp属性修改为001 attr.setValue("001"); } //查找emp下的name节点 List listText = doc.selectNodes("/emps/emp/name"); Iterator itText = listText.iterator(); while(itText.hasNext()){ Element textEle = (Element) itText.next(); //name节点的文本内容修改为"张三" textEle.setText("张三"); } //查找emp节点 List listEle = doc.selectNodes("/emps/emp"); Iterator itEle = listEle.iterator(); while(itEle.hasNext()){ Element empEle = (Element) itEle.next(); //查找emp下的sex节点 Iterator itSex = empEle.elementIterator("sex"); while(itSex.hasNext()){ Element sexEle = (Element) itSex.next(); //删除sex节点 empEle.remove(sexEle); } } //创建写出流 Writer out = new FileWriter("F:\\emps(update).xml"); // 格式化输出 OutputFormat format = OutputFormat.createPrettyPrint(); //OutputFormat format = OutputFormat.createCompactFormat(); format.setEncoding("UTF-8"); //创建写出对象 XMLWriter writer = new XMLWriter(out,format); writer.write(doc); writer.close(); System.out.println("生成emps(update).xml成功。"); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } publicstaticvoid main(String[] args) { new Dom4JXML().updateXML(); } }
为支持所有这些功能,DOM4J 使用接口和抽象基本类方法。DOM4J 大量使用了API 中的 Collections 类,但是在许多情况下,它还提供一些替代方法以允许更好的性能或更直接的编码方法。直接好处是,虽然 DOM4J 付出了更复杂的 API 的代价,但是它提供了比 JDOM 大得多的灵活性。
在添加灵活性、XPath 集成和对大文档处理的目标时,DOM4J 的目标与 JDOM 是一样的:针对 Java 开发者的易用性和直观操作。它还致力于成为比 JDOM 更完整的解决方案,实现在本质上处理所有 Java/XML 问题的目标。在完成该目标时,它比 JDOM 更少强调防止不正确的应用程序行为。 DOM4J 是一个非常非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件。如今你可以看到越来越多的 Java 软件都在使用 DOM4J 来读写 XML,特别值得一提的是连 Sun 的 JAXM 也在用 DOM4J。 注意: dom4j1.6解压后有一个dom4j-1.6.1.jar文件,这就是应用时需要引入的类包,另外还有一个jaxen-1.1-beta-6.jarr文件,一般也需要引入,否则执行时可能抛java.lang.NoClassDefFoundError: org/jaxen/JaxenException异常,其他的包可以选择用之。 举例说明: 创建一个emps.xml文档 package com.xml; import java.io.FileWriter; import java.io.IOException; import java.io.Writer; import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.dom4j.io.OutputFormat; import org.dom4j.io.XMLWriter; publicclass Dom4JXML { publicvoid createXML() { //用工厂类创建一个document实例 Document doc = DocumentHelper.createDocument(); //创建根元素emps Element rootEle = doc.addElement("emps"); //添加注释 rootEle.addComment("这是一个dom4j生成的xml文件"); //emps根节点下创建一个emp节点 Element empEle = rootEle.addElement("emp"); //emp添加属性id="1" empEle.addAttribute("id", "1"); //emp节点下创建一个name节点 Element nameEle = empEle.addElement("name"); //name节点下创建一个文本节点zhangsan nameEle.setText("zhangsan"); //再为name节点创建一个兄弟节点 Element sexEle = empEle.addElement("sex"); sexEle.setText("man"); //将document中的内容写入文件中 try { Writer out = new FileWriter("F:\\emps.xml"); //格式化输出,类型IE浏览一样 OutputFormat format = OutputFormat.createPrettyPrint(); //OutputFormat format = OutputFormat.createCompactFormat(); format.setEncoding("UTF-8"); //创建写出对象 XMLWriter writer = new XMLWriter(out,format); writer.write(doc); writer.close(); System.out.println("生成emps.xml成功。"); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); System.out.println("失败了。"); } } publicstaticvoid main(String[] args) { new Dom4JXML().createXML(); } } 文档内容:
DOM4J解析xml文件001
使用 dom4j 解析 XML
使用 dom4j 解析 XML
使用 dom4j 解析 XML
使用 dom4j 解析 XML
Java dom4j 解析xml文档
使用 XStream 解析xml文件
dom4j生成xml实例
java解析xml文件四种方式
Dom4j下载及使用Dom4j读写XML简介
Dom4j下载及使用Dom4j读写XML简介
在JSP开发中使用jdom解析临时存放数据的XML文件
Dom4j下载及使用Dom4j读写XML简介 - - JavaEye技术网站
DOM4J对XML文档的读写增删改等
js解析XML
sax解析xml
XJL:XML文件处理
XJL:XML文件处理
Java中四种XML解析技术
几个解析XML的例子
使用JAXP处理XML文件
ANT-build.xml文件详解
C# XML解析方式实例解析
用dom4j建立,修改XML文档,并解决格式化输出和中文问题