2

我有一个 Java 中的 NodeList 和这个 XML 文件,(只是其中的一部分)

如果我有

<Book title="aaa" author="bbb" price="12" year="2011" />

我可以使用 XPath 表达式来查看是否验证了某些条件,例如:

local-name(.) = 'Book' and @title local-name(.) = 'Book' and @title

如果 XPath 表达式执行的结果为真...做某事,否则做其他事情。在这种情况下,我直接在节点上构建了一个表达式,这没关系。

在 NodeList 的情况下,我怎样才能完成相同的任务?例如,我想看看 NodeList(Java 中的 org.w3c.NodeList)是否有一些节点,但使用的是 XPath 表达式。

谢谢卢卡

4

2 回答 2

1

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

于 2011-09-13T08:00:45.800 回答
0

如果节点集在一个变量$v中,那么下面的 XPath 表达式:

$v[self::Book and @title]

从中选择所有节点,这些节点$vBook元素并且还具有名为 的属性title

如果节点集可以作为对特定 XPath 表达式求值的结果获得,那么您可以$v用这个表达式替换:

yourExpression[self::Book and @title]

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

/*/*[self::Book and @title]
于 2011-09-14T13:05:38.950 回答