dom4j操作xml

简介:   dom4j是一个Java的XML API,类似于jdom,用来读写XML文件。是一个非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源工具。可以在这个地址http://dom4j.sourceforge.net进行下载。

  dom4j是一个Java的XML API,类似于jdom,用来读写XML文件。是一个非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源工具。可以在这个地址http://dom4j.sourceforge.net进行下载。

  这里我们使用到的dom4j是dom4j-1.6.1这个版本,我们只需要使用到如下两个jar包:

  dom4j-1.6.1.jar

  commons-io-2.4.jar

1、dom4j读取xml字符串

 1 import org.dom4j.Document;
 2 import org.dom4j.DocumentException;
 3 import org.dom4j.DocumentHelper;
 4 import org.dom4j.Element;
 5 
 6 public class TestReadXMLString {
 7     public static void main(String[] args) throws DocumentException {
 8         String readline = "<?xml version=\"1.0\" encoding=\"utf-8\"?><students><student sid=\"001\"> <id>001</id><name>灰机</name> <age>18</age> </student></students>";
9 Document document = DocumentHelper.parseText(readline);// 加载字符串获得文档对象 10 Element rootElm = document.getRootElement();//获得文档根节点 11 System.out.println("rootElement: " + rootElm.getName());//打印根节点的名称 12 Element student = rootElm.element("student"); 13 Element id = student.element("id"); 14 Element name = student.element("name"); 15 Element age = student.element("age"); 16 System.out.println(id.getText()); 17 System.out.println(name.getText()); 18 System.out.println(age.getText()); 19 } 20 }

 

 2、dom4j创建xml文件

 1 import org.dom4j.Document;
 2 import org.dom4j.DocumentHelper;
 3 import org.dom4j.Element;
 4 import org.dom4j.io.OutputFormat;
 5 public class TestWriteXMLString {
 6     public static void main(String[] args) {
 7         OutputFormat format = OutputFormat.createPrettyPrint();
 8         // 1. 构造空的Document
 9         Document doc = DocumentHelper.createDocument();
10         doc.addComment("this is a comment");
11         // 2. 构造根元素
12         Element rootElmt = doc.addElement("users");
13         rootElmt.addNamespace("test", "www.test.com");
14 
15         Element userElmt = rootElmt.addElement("user");
16         userElmt.addAttribute("number", "1001");
17         userElmt.addElement("name").setText("zhangsan");
18         userElmt.addElement("age").setText("20");
19         userElmt.addElement("gender").setText("mail");
20 
21         Element userElmt2 = rootElmt.addElement("user");
22         userElmt.addAttribute("number", "1002");
23         userElmt2.addElement("name").setText("zhangsan");
24         userElmt2.addElement("age").setText("20");
25         userElmt2.addElement("gender").setText("mail");
26 
27         System.out.println(doc.asXML().replaceAll("\n", ""));
28     }
29 }

 

 3、读取或写xml文件

  读取xml文件

 1 SAXReader reader = new SAXReader();
 2       String path = "E:/Workspaces/MyEclipse 8.6/xmltest/file/student.xml";
 3       Document document = reader.read(new File(path));
 4 
 5   写xml文件
 6 
 7   OutputFormat format = OutputFormat.createPrettyPrint();
 8   format.setEncoding("utf-8");// 设置XML文件的编码格式
 9 
10   String filePath = "E:/Workspaces/MyEclipse 8.6/xmltest/file/student.xml";
11       Document document = DocumentHelper.createDocument();
12       doc.addComment("this is a comment");
13 
14   //创建document内容。。。
15   XMLWriter writer = new XMLWriter(new FileWriter(filePath), format);//写入指定的文件
16 
17   writer.write(document);
18 
19    writer.close();
目录
相关文章
|
4月前
|
XML JavaScript Java
【JAVA XML 探秘】DOM、SAX、StAX:揭秘 Java 中 XML 解析技术的终极指南!
【8月更文挑战第25天】本文详细探讨了Java中三种主流的XML解析技术:DOM、SAX与StAX。DOM将XML文档转换为树状结构,便于全方位访问和修改;SAX采取事件驱动模式,适用于大型文件的顺序处理;StAX则兼具DOM和SAX的优点,支持流式处理和随机访问。文中提供了每种技术的示例代码,帮助读者理解如何在实际项目中应用这些解析方法。
208 1
|
5月前
|
XML JavaScript 数据格式
XML DOM 浏览器差异
所有 modern browsers 支持 W3C DOM 规范, 但仍存在差异, 主要是处理空白和换行的不同。例如, 在 XML 中, Internet Explorer 不会将空白或换行视为文本节点, 而其他浏览器则会。这会导致相同的 XML 文档在 IE 中的子节点数为 4, 而在其他浏览器中为 9:
|
5月前
|
XML JavaScript 数据格式
XML DOM 浏览器差异
所有 modern browsers 支持 W3C DOM, 但在处理空白和换行上存在差异。例如, 使用记事本编辑的 XML 可能包含 CR/LF 和额外空格。IE 不将空白视作文本节点, 与其他浏览器不同。
|
5月前
|
XML JavaScript 数据格式
XML DOM 浏览器差异
所有 modern browsers 支持 W3C DOM, 但在处理空白和换行上存在差异。例如, 使用记事本编辑的 XML 可能包含 CR/LF 和额外空格。IE 不将空白视作文本节点, 而其他浏览器则会。这会导致对相同 XML 文档的 `childNodes` 长度计算不同: IE 显示 4 个子节点, 其他浏览器显示 9 个。
|
5月前
|
XML 存储 JavaScript
XML DOM - 访问节点
通过 DOM, 可全面访问 XML 文档的节点。实现这一目标有 3 种方法: 1. 使用 `getElementsByTagName()` 方法, 2. 遍历节点树, 3. 利用节点间的关联进行导航。 `getElementsByTagName()` 返回一个 Node List, 即节点数组。
|
5月前
|
XML JavaScript 数据格式
XML DOM 浏览器差异
输出子节点的数量。结果取决于您所使用的浏览器。IE 浏览器会输出 4(提醒 4 个子节点),而其他浏览器会输出 9(提醒 9 个子节点)。
|
5月前
|
XML JavaScript 数据格式
XML DOM 遍历节点树
遍历(Traverse)意味着在节点树中进行循环或移动。
|
5月前
|
XML Web App开发 JavaScript
XML DOM 解析器
解析器把 XML 转换为 JavaScript 可存取的对象(XML DOM)。
|
5月前
|
XML JavaScript 数据格式
XML DOM 遍历节点树
遍历(Traverse)意味着在节点树中进行循环或移动。
|
5月前
|
XML 存储 JavaScript
XML DOM - 访问节点
通过 DOM, 可全面访问 XML 文档的节点。实现这一目标有 3 种方法: - 使用 `getElementsByTagName()` 方法, - 循环遍历节点树, - 利用节点间关系进行导航。 `getElementsByTagName()` 返回一个 Node List,即一种节点数组形式。示例代码通过 `loadXMLDoc()` 函数加载 &quot;books.xml&quot; 文件到 `xmlDoc` 变量中,并随后在变量 `x` 中保存所需节点信息。