祖先属性不等于字符串的Xpath测试
我试图测试元素的祖先上的属性是否不等于字符串 这是我的XML祖先属性不等于字符串的Xpath测试,xpath,attributes,Xpath,Attributes,我试图测试元素的祖先上的属性是否不等于字符串 这是我的XML <aaa att="xyz"> <bbb> <ccc/> </bbb> </aaa> <aaa att="mno"> <bbb> <ccc/> </bbb> </aaa> 谢谢 假设说元素的祖先是指包含子元素的元素,那么这个XPath表达式应该: //*[*/ccc][@att != 'xyz'] 它选择 所有节
<aaa att="xyz">
<bbb>
<ccc/>
</bbb>
</aaa>
<aaa att="mno">
<bbb>
<ccc/>
</bbb>
</aaa>
谢谢 假设说元素的祖先是指包含子元素的元素,那么这个XPath表达式应该:
//*[*/ccc][@att != 'xyz']
它选择
孙子节点的att
属性,其值不是xyz
祖父母的限制测试
更新2:根据您的修订问题进行调整:
//ccc[../parent::aaa/@att != 'xyz']
挑选
元素att
设置为非xyz
什么元素的祖先?您是指至少有一个子元素的元素吗?对不起,在所讨论的元素周围有括号。在示例XML之后查看我的新行。感谢您的回复。然而,我只想测试ccc的祖父母aaa。根据您的解释,这测试了文档中的所有aaa节点。@Jeff:您的问题并不是很清楚;我现在更新了我的回答。@杰夫:我添加了一个替代解决方案,以演示如何实际使用
元素作为结果节点,如您问题中所述。
//ccc[../parent::aaa/@att != 'xyz']