文章目录
一、XPath格式及含义
格式 | 含义 |
---|---|
/AAA/DDD/BBB | 表示逐层查找,AAA下的DDD下的BBB |
//BBB | 查找并返回一个标签名为“BBB”的集合 |
/* | 查找并返回所有元素 |
/AAA/BBB[1](或者BBB[last()]) | 表示AAA下的第一个BBB元素(最后一个元素) |
//BBB[@id] | 表示带有id属性的BBB标签 |
//BBB[@id=‘a’] | 表示id属性为a的BBB标签 |
二、示例
xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<persons>
<person id="a">
<name>zhangsan</name>
<sex>男</sex>
</person>
<person>
<name>lisi</name>
<age>42</age>
</person>
</persons>
- 获取第一个person下的name的值:
public static void test() {
String path = "./src/com/example/dom4j/persons.xml";
Document document = Dom4jUtils.getDocument(path);
if (document != null) {
String str = "//person[@id='a']/name";
//String str = "//name";
//String str = "/persons/person[@id='a']/name";
Node node = document.selectSingleNode(str);
System.out.println(node.getText());
}
}
- 查询xml中所有name元素的值:
public static void test() {
String path = "./src/com/example/dom4j/persons.xml";
Document document = Dom4jUtils.getDocument(path);
if (document != null) {
//获取所有name元素
List<Node> nodes = document.selectNodes("//name");
//遍历
for (Node node : nodes) {
System.out.println(node.getText());
}
}
}