一、DOM4J介绍
DOM4J是基于Java平台下的一个XML解析器,它是对JDOM的一个孪生兄弟类型。在解析XML数据时,它可以读取整个XML文档并把它保存在内存中的树结构中。也可以通过许多方法从树中获取数据。通过DOM4J,可以在Java中操作XML文档的所有方法和计算机操作的格式文件而不必关心其结构或内容。
二、使用DOM4J生成XML文件
(1)建立XML文件
在Java中创建或生成XML文件,主要是想生成一个DOM4J的Document对象,因为XML文档对象模型(DOM)是一种树形数据结构。当然,你可以通过Java I/O类在磁盘上创建一个XML文件,然后将数据存储在其中,或者使用DOM4J直接创建XML文件。下面是通过DOM4J直接创建XML文件的示例代码:
// 创建document对象
Document document = DocumentHelper.createDocument();
// 创建根节点root节点
Element root = document.addElement("students");
// 在根节点上添加学生子节点
Element student1 = root.addElement("student").addAttribute("id", "001");
student1.addElement("name").setText("张三");
student1.addElement("gender").setText("男");
student1.addElement("age").setText("18");
Element student2 = root.addElement("student").addAttribute("id", "002");
student2.addElement("name").setText("李四");
student2.addElement("gender").setText("女");
student2.addElement("age").setText("17");
// 保存生成的文件
try {
FileWriter out = new FileWriter("students.xml");
document.write(out);
out.close();
} catch (IOException e) {
e.printStackTrace();
}
对上述代码的说明如下:
- 首先,创建一个DocumentHelper对象调用其createDocument方法生成一个Document对象。
- 然后通过Document对象调用addElement方法创建一个根节点。
- 在根节点上添加两个学生节点student1和student2,且为其设置id属性。
- 在每个学生节点下添加了三个节点name,gender以及age。
- 最后通过FileWriter将生成的XML文件保存到磁盘上。
(2)解析XML文件
DOM解析器会将整个XML文档读入内存,把它保存在树结构中。可以使用DOM4J来读取XML文件并解析该文件。DOM4J提供了SAXReader类,用于从XML文件中读取数据。下面是读取students.xml文件并解析其内容的示例代码:
// 创建saxreader对象
SAXReader saxReader = new SAXReader();
try {
// 读取students.xml文件
Document document = saxReader.read(new File("students.xml"));
// 获取根节点
Element root = document.getRootElement();
// 获取祖先元素为students的名称所有元素(可以是多个)
List<Element> studentList = root.elements("student");
// 循环遍历studentList集合
for (Element element : studentList) {
System.out.println("学生id=" + element.attribute("id").getValue());
System.out.println("姓名=" + element.elementText("name"));
System.out.println("性别=" + element.elementText("gender"));
System.out.println("年龄=" + element.elementText("age"));
}
} catch (DocumentException e) {
e.printStackTrace();
}
对上述代码的说明如下:
- 首先,创建一个SAXReader对象。
- 然后通过该对象的read方法将指定的students.xml文件读取到内存,并将其存储在Document对象中。
- 接着通过Document对象的getRootElement方法获取该XML文档的根节点。
- 调用根节点的elements方法查找所有名为student的子节点并返回该列表到studentList中。
- 最后通过循环遍历studentList列表中的每个学生节点,并通过element()调用获取每个学生节点的不同元素值。
三、总结
上述就是使用DOM4J生成XML文件并解析XML文件的完整攻略。使用DOM4J不仅可以方便地生成和解析XML文件,而且还提供了许多高效的处理XML文件的方法。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java中使用DOM4J生成xml文件并解析xml文件的操作 - Python技术站