0
点赞
收藏
分享

微信扫一扫

DOM4J使用过程中的一个细节问题:节点的选择


了解DOM4J的朋友肯定用过:

Node的selectNodes或者selectSingleNode方法,或者XPath的selectNodes或者selectSingleNode方法。

刚开始使用的时候我以为Node的selectNodes或者selectSingleNode是在Node结点下根据给定的XPath表达式进行查找的,XPath的方法也是根据参数中给定的node节点进行查找的。

后来在使用过程中发现其实不是这样的,不管你给定子结点还是整个Document,查找的过程都是在整个XML Document中进行的。


那么需要在指定结点下查询怎么办呢?

解决办法:

我查询了XPath语法发现:.号可以表示当前结点,所以在原来的XPath中加入一个.就可以了。


例如:我想查询students结点下的所有name结点,我这样使用studentsNode.selectNodes(".//name");这样的Java语句进行。这样XPath查询的话就只在studentsNode这个结点下进行了。


对自己以前的理解错误做一个记录,希望能帮助到有类似问题的朋友!


下面给出一个XPath的路径语法表:

表达式

描述

nodename

选取此节点的所有子节点。

/

从根节点选取。

//

从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。

.

选取当前节点。

..

选取当前节点的父节点。

@

选取属性。


举报

相关推荐

0 条评论