📅  最后修改于: 2023-12-03 15:31:29.998000             🧑  作者: Mango
Java DOM4J解析器是一个开源的Java XML解析库,它是基于Java标准库中的DOM和SAX解析器进行二次封装而来的。相较于Java标准库中的解析器,DOM4J解析器具有更好的性能和易用性。
在pom.xml文件中添加以下依赖:
<dependency>
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>1.6.1</version>
</dependency>
假设我们有一个名为"student.xml"的XML文件,它的内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<students>
<student>
<name>Tom</name>
<age>18</age>
<gender>Male</gender>
</student>
<student>
<name>Lisa</name>
<age>20</age>
<gender>Female</gender>
</student>
</students>
我们可以使用以下代码对XML文件进行解析:
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import java.io.File;
import java.util.List;
public class Demo {
public static void main(String[] args) throws Exception {
SAXReader reader = new SAXReader();
Document document = reader.read(new File("student.xml"));
Element root = document.getRootElement();
List<Element> students = root.elements("student");
for (Element student : students) {
String name = student.elementText("name");
String age = student.elementText("age");
String gender = student.elementText("gender");
System.out.println("Name: " + name + ", Age: " + age + ", Gender: " + gender);
}
}
}
运行上述代码,输出如下:
Name: Tom, Age: 18, Gender: Male
Name: Lisa, Age: 20, Gender: Female
DOM4J解析器支持XPath查询,在上述例子中,我们可以使用以下代码实现查询18岁以上的男生:
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import java.io.File;
import java.util.List;
public class Demo {
public static void main(String[] args) throws Exception {
SAXReader reader = new SAXReader();
Document document = reader.read(new File("student.xml"));
List<Element> students = document.selectNodes("//student[age>=18 and gender='Male']");
for (Element student : students) {
String name = student.elementText("name");
String age = student.elementText("age");
String gender = student.elementText("gender");
System.out.println("Name: " + name + ", Age: " + age + ", Gender: " + gender);
}
}
}
运行上述代码,输出如下:
Name: Tom, Age: 18, Gender: Male
本文介绍了Java DOM4J解析器的特点和使用方法,通过对XML文档的解析和查询,我们可以发现DOM4J解析器具有良好的性能和易用性,适用于各种XML文档的处理需求。