###Dom4j 的 Xpath使用 > dom4j里面支持Xpath的写法。 xpath其实是xml的路径语言,支持我们在解析xml的时候,能够快速的定位到具体的某一个元素。 1. 添加jar包依赖 jaxen-1.1-beta-6.jar 2. 在查找指定节点的时候,根据XPath语法规则来查找 3. 后续的代码与以前的解析代码一样。 |
XpathTest:
package com.yuming.test;
import java.io.File;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
/**
* xml解析
* <p>Title: MainTest</p>
* <p>Description: </p>
* <p>Company: www.itcast.cn</p>
* @version 1.0
*/
public class XpathTest {
public static void main(String[] args) {
try {
//1.创建sax读取对象
SAXReader reader = new SAXReader();
//2.指定解析的xml源文件
Document document = reader.read(new File("src/xml/stus.xml"));
//3.得到元素
//得到根元素
Element rootElement = document.getRootElement();
//System.out.println(rootElement.getName()); //-->stus
//要想使用Xpath, 还得添加支持的jar 获取的是第一个 只返回一个。
Element nameElement = (Element) rootElement.selectSingleNode("//name");
System.out.println(nameElement.getText());
System.out.println("----------------");
//获取文档里面的所有name元素
List<Element> list = rootElement.selectNodes("//name");
for (Element element : list) {
System.out.println(element.getText());
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
}
stus.xml:
<?xml version="1.0" encoding="UTF-8"?>
<stus>
<stu>
<name>张三</name>
<age>18</age>
<address>北京</address>
</stu>
<stu>
<name>李四</name>
<age>20</age>
<address>上海</address>
</stu>
</stus>
运行结果: