用于验证 NodeList 的 XPath 表达式

发布于 2024-12-04 10:09:17 字数 476 浏览 3 评论 0原文

我有一个 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

温柔戏命师 2024-12-11 10:09:17

您可以循环 NodeList 中的节点并将 xpath 应用于每个节点。

You can loop over nodes in the NodeList and apply your xpath to each node.

秋千易 2024-12-11 10:09:17

如果节点集位于变量 $v 中,则以下 XPath 表达式:

$v[self::Book and @title]

$v 中选择属于 Book 元素的所有节点,并且还有一个名为 title 的属性。

如果节点集可以作为特定 XPath 表达式的计算结果获得,那么您可以用此表达式替换 $v

yourExpression[self::Book and @title]

例如,如果所讨论的节点集包含返回的所有节点通过 /*/*,则从该节点集中选择所需节点的一个表达式是:

/*/*[self::Book and @title]

If the node-set is in a variable $v, then the following XPath expression:

$v[self::Book and @title]

selects all nodes from $v that are Book elements and that also have an attribute named title.

If the node-set can be obtained as the result of evaluation a particular XPath expression, then you can substitute $v with this expression:

yourExpression[self::Book and @title]

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:

/*/*[self::Book and @title]
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文