作者 : Jeff   时间 : 2018-10-12   浏览 : ...

dom4j用xpath查找xml的指定节点

添加依赖:
<dependency>
    <groupId>dom4j</groupId>
    <artifactId>dom4j</artifactId>
    <version>1.6.1</version>
</dependency>
<dependency>
    <groupId>jaxen</groupId>
    <artifactId>jaxen</artifactId>
    <version>1.1</version>
</dependency>
没有jaxen会报异常:java.lang.NoClassDefFoundError: org/jaxen/JaxenException

Document doc = DocumentHelper.parseText(xml);
Element root = doc.getRootElement();
//找到subject的属性value=math,chapter属性value=1的text节点
Node node = root.selectSingleNode("//subject[@value='math']/chapter[@value='1']/text");

下面列出了最有用的路径表达式:
表达式             描述
nodename         选取此节点的所有子节点
/                 从根节点选取
//                 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置
.                 选取当前节点
..                 选取当前节点的父节点
@                 选取属性

具体的xpath可以查阅:http://www.w3school.com.cn/xpath/index.asp

原创文章如转载,请注明本文链接: http://www.seaxiang.com/blog/dom4j_xpath
seaxiang  All Rights Reserved   粤ICP备15083047号-1