在dom4j中使用XPath可以方便地对XML文档中的数据进行定位和获取。下面是在dom4j中使用XPath的简单实例:
准备工作
在正式开始之前,需要先引入dom4j和junit的相关依赖,如果是Maven项目,可以在pom.xml文件中添加以下代码:
<dependency>
<groupId>org.dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>2.1.3</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<scope>test</scope>
</dependency>
示例一
假设我们有以下XML文档:
<?xml version="1.0"?>
<bookstore>
<book category="Web">
<title lang="en">Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>31.95</price>
</book>
<book category="Web">
<title lang="en">XQuery Kick Start</title>
<author>James McGovern</author>
<author>Per Bothner</author>
<author>Kurt Cagle</author>
<author>James Linn</author>
<author>Vaidyanathan Nagarajan</author>
<year>2003</year>
<price>49.99</price>
</book>
</bookstore>
我们可以使用XPath获取所有书籍的名称和价格:
@Test
public void testGetBookNamesAndPrices() throws Exception {
SAXReader reader = new SAXReader();
Document document = reader.read(new File("src/test/resources/books.xml"));
List<Node> nodes = document.selectNodes("//book");
for (Node node : nodes) {
String title = node.selectSingleNode("title").getText();
String price = node.selectSingleNode("price").getText();
System.out.println("书名:" + title + ",价格:" + price);
}
}
上述代码中,selectNodes("//book")
表示查询所有book
节点,selectSingleNode("title")
表示查询当前节点下的title
子节点。最终的输出结果为:
书名:Learning XML,价格:31.95
书名:XQuery Kick Start,价格:49.99
示例二
我们也可以使用XPath获取XML文档中特定节点的值。例如,假设我们有以下XML文档:
<?xml version="1.0"?>
<users>
<user>
<name>张三</name>
<age>20</age>
</user>
<user>
<name>李四</name>
<age>25</age>
</user>
</users>
我们可以使用XPath获取特定用户的年龄:
@Test
public void testGetUserAge() throws Exception {
SAXReader reader = new SAXReader();
Document document = reader.read(new File("src/test/resources/users.xml"));
Node node = document.selectSingleNode("//user[name='张三']/age");
String age = node.getText();
System.out.println("张三的年龄:" + age);
}
上述代码中,selectSingleNode("//user[name='张三']/age")
表示选择用户名为“张三”的用户并获取其年龄。最终的输出结果为:
张三的年龄:20
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:在dom4j中使用XPath的简单实例 - Python技术站