以下xpath查询获取节点,除非祖先是特定类型:
(/def:Image|…|//def:TextBox)[not(ancestor::clpm:EditableText)]
但是,我希望能够排除所有具有clpm
命名空间中的祖先的节点。
无法解决这些问题,任何想法?
由于
答案 0 :(得分:2)
使用以下作为谓词:
不会(祖先:: * [开始-与(名称(), 'clpm:')])强>
请注意,但namespace
和prefix
是完全不同的事情。在单个XML文档中,许多不同的前缀可以绑定到同一个名称空间,并且可以将单个前缀绑定(重新定义)到多个名称空间。
在你的问题中,你说namespace
,当你的意思是prefix
。
如果当前节点没有 prefix
clpm的任何祖先,则上面的XPath表达式为真。