我正在尝试测试元素的祖先上的属性是否不等于字符串。
这是我的XML ...
<aaa att="xyz">
<bbb>
<ccc/>
</bbb>
</aaa>
<aaa att="mno">
<bbb>
<ccc/>
</bbb>
</aaa>
如果我在元素ccc上表演,我试图测试它的祖父母aaa @att不等于“xyz”。
我目前有这个......
ancestor::aaa[not(contains(@att, 'xyz'))]
谢谢!
答案 0 :(得分:16)
假设通过说元素的祖先,你指的是带有子元素的元素,这个XPath表达式应该这样做:
//*[*/ccc][@att != 'xyz']
选择
<ccc>
孙子节点att
属性的值不是xyz
。 更新: <ccc>
对祖父母的限制测试。
更新2 :根据您修改后的问题进行调整:
//ccc[../parent::aaa/@att != 'xyz']
选择
<ccc>
元素<aaa>
且其属性att
设置为不是xyz