【问题标题】:Xpath query exclude ancestors of a particular namespaceXpath 查询排除特定命名空间的祖先
【发布时间】:2009-11-27 11:45:37
【问题描述】:

以下 xpath 查询获取除祖先为特定类型之外的节点:

(/def:Image|…|//def:TextBox)[not(ancestor::clpm:EditableText)]

但是,我希望能够排除所有具有位于 clpm 命名空间中的祖先的节点。

想不通,有什么想法吗?

谢谢

【问题讨论】:

    标签: xpath


    【解决方案1】:

    使用以下作为谓词:

    not(ancestor::*[starts-with(name(),'clpm:')])

    请注意,但是,namespaceprefix 是完全不同的东西。在一个 XML 文档中,许多不同的前缀可以绑定到同一个命名空间,而一个前缀可以绑定(重新定义)到多个命名空间。

    在你的问题中你说namespace,当你的意思是prefix

    如果当前节点没有任何具有 prefix clpm 的祖先,则上述 XPath 表达式为真。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-01-23
      • 1970-01-01
      • 1970-01-01
      • 2014-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多