【问题标题】:XPath expression to verify a NodeList用于验证 NodeList 的 XPath 表达式
【发布时间】:2011-09-14 21:05:38
【问题描述】:

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

如果我有

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

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

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

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

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

谢谢 卢卡

【问题讨论】:

  • 好问题,+1。是的,通常 XPath 可用于从给定节点集中选择节点,使用包含节点集的变量或选择此节点集的节点的另一个 XPath 表达式。

标签: java xml xpath nodelist


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    $v[self::Book and @title]
    

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

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

    yourExpression[self::Book and @title]
    

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

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

    【讨论】:

      猜你喜欢
      • 2010-11-20
      • 1970-01-01
      • 2014-09-03
      • 1970-01-01
      • 1970-01-01
      • 2014-04-21
      • 1970-01-01
      • 2012-03-15
      • 1970-01-01
      相关资源
      最近更新 更多