【发布时间】:2009-11-27 11:45:37
【问题描述】:
以下 xpath 查询获取除祖先为特定类型之外的节点:
(/def:Image|…|//def:TextBox)[not(ancestor::clpm:EditableText)]但是,我希望能够排除所有具有位于 clpm 命名空间中的祖先的节点。
想不通,有什么想法吗?
谢谢
【问题讨论】:
标签: xpath
以下 xpath 查询获取除祖先为特定类型之外的节点:
(/def:Image|…|//def:TextBox)[not(ancestor::clpm:EditableText)]但是,我希望能够排除所有具有位于 clpm 命名空间中的祖先的节点。
想不通,有什么想法吗?
谢谢
【问题讨论】:
标签: xpath
使用以下作为谓词:
not(ancestor::*[starts-with(name(),'clpm:')])
请注意,但是,namespace 和 prefix 是完全不同的东西。在一个 XML 文档中,许多不同的前缀可以绑定到同一个命名空间,而一个前缀可以绑定(重新定义)到多个命名空间。
在你的问题中你说namespace,当你的意思是prefix。
如果当前节点没有任何具有 prefix clpm 的祖先,则上述 XPath 表达式为真。
【讨论】: