Xpath查询排除特定命名空间的祖先

时间:2009-11-27 11:45:38

标签: xpath

以下xpath查询获取节点,除非祖先是特定类型:

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

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

无法解决这些问题,任何想法?

由于

1 个答案:

答案 0 :(得分:2)

使用以下作为谓词:

  

不会(祖先:: * [开始-与(名称(), 'clpm:')])

请注意,但namespaceprefix是完全不同的事情。在单个XML文档中,许多不同的前缀可以绑定到同一个名称空间,并且可以将单个前缀绑定(重新定义)到多个名称空间。

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

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