提问者:小点点

为什么xpath在使用`not`时不选择类为空的元素?


下面是一个最小的可重复的场景。

<tr> Hello </tr>
<tr class="heisenberg"> I'm the one who knocks. </tr>
<tr class="lennon"> Imagine no errors. </tr>

我想要所有的,除了类“Heisenberg”。 我这样做了:

tr[@class!="heisenberg"]

该xpath选择的是lennon,但不是具有空类的那个。 为什么? 我该怎么做才能解决这个问题?


共2个答案

匿名用户

XPath假设节点具有class属性,并且它不等于“Heisenberg”

尝试此选项以选择不包含特定@class的节点

tr[not(@class="heisenberg")]

如果节点可以包含多个类名,您也可以尝试

tr[not(contains(@class, "heisenberg"))]

匿名用户

这应该可以:tr[not(@class)或@class!=“Heisenberg”]