如何在xpath中使用“ not”?


164

我想写一些东西:

//a[not contains(@id, 'xx')]

(表示所有具有“ id”属性的链接均不包含字符串“ xx”)

我找不到正确的语法。

Answers:


241

not()是xpath中的一个函数(与运算符相对),因此

//a[not(contains(@id, 'xx'))]

有没有办法说抢所有<p>标记而不是其中的<a>标记?想象像<p> text text <a class="x"> TEXT </a> text text </ p>之类的东西。我想要p中的所有文本,而不想要a中的TEXT。XPath有可能吗?这不完全是我的情况,它比这稍微复杂一些,但大致相同。
阿里(Ali)


13

这些答案都不适合python。我解决了这个

a[not(@id='XX')]

您也可以按|运算符在xpath中使用或调节。如

a[not(@id='XX')]|a[not(@class='YY')]

有时我们想要没有类的元素。所以你可以喜欢

a[not(@class)]

1

用法boolean function如下:

//a[(contains(@id, 'xx'))=false]
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.