示例,我有一个像这样的XML文档
a[@class="wrong]
...
b
c
d
...
b
c <= this one
我想选择第二个// b / c而不从@ class =“错误”获取第一部分的// b / c。 并且在不需要的节点和// b / c之间存在一些未知节点。 而且我不知道这是非期望类的确切标记。
所以我试试//*[not(contains(@class,'wrong'))]/b/c
但是它没有用,因为如果没有这个类的'...'中至少有一个节点,那么第一个b / c也会被返回。
答案 0 :(得分:1)
使用:
//b[not(ancestor::*[contains(@class,'wrong')])]/c