用于验证 NodeList 的 XPath 表达式
我有一个 Java 中的 NodeList 和这个 XML 文件(只是其中的一部分),
如果有的话
<Book title="aaa" author="bbb" price="12" year="2011" />
我可以使用 XPath 表达式来查看某些条件是否得到验证,例如:
local-name(.) = 'Book' and @title local-name(.) = 'Book' and @title
如果 XPath 表达式执行的结果为 true...做某事,否则做别的事。 在本例中,我直接在节点上构建了一个表达式,这样就可以了。
对于 NodeList,我怎样才能完成同样的任务? 例如,我想查看 NodeList(Java 中的 org.w3c.NodeList)是否有一些节点,但使用 XPath 表达式。
谢谢 卢卡
I have a NodeList in Java and this XML file, (just a part of it)
if I have
<Book title="aaa" author="bbb" price="12" year="2011" />
I can use an XPath expression to see if some conditions are verified, for example:
local-name(.) = 'Book' and @title local-name(.) = 'Book' and @title
If the result of XPath expression execution is true...do something, otherwise do something else.
In this case I built an expression directly on a Node, and that's ok.
In the case of NodeList, how can I do the same task?
I would like to see if NodeList (org.w3c.NodeList in Java) has some nodes, for example, but using an XPath expression.
Thanks
Luca
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以循环
NodeList
中的节点并将 xpath 应用于每个节点。You can loop over nodes in the
NodeList
and apply your xpath to each node.如果节点集位于变量
$v
中,则以下 XPath 表达式:从
$v
中选择属于Book
元素的所有节点,并且还有一个名为title
的属性。如果节点集可以作为特定 XPath 表达式的计算结果获得,那么您可以用此表达式替换
$v
:例如,如果所讨论的节点集包含返回的所有节点通过
/*/*
,则从该节点集中选择所需节点的一个表达式是:If the node-set is in a variable
$v
, then the following XPath expression:selects all nodes from
$v
that areBook
elements and that also have an attribute namedtitle
.If the node-set can be obtained as the result of evaluation a particular XPath expression, then you can substitute
$v
with this expression:For example, if the node-set in question consists of all nodes returned by
/*/*
, then one expression that selects the wanted nodes from this node-set is: