181

我想写一些类似的东西:

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

(意味着所有有'id'属性的链接不包含字符串'xx')

我找不到正确的语法。

4

4 回答 4

265

not()是 XPath 中的一个函数(与运算符相反),所以

//a[not(contains(@id, 'xx'))]
于 2009-10-11T15:45:50.190 回答
41

你可以使用not(expression)功能

或者

expression != true()
于 2012-01-05T13:32:40.643 回答
18

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

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

您也可以通过运算符在 xpath 中使用或条件|。如

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

有时我们想要没有类的元素。所以你可以这样做

a[not(@class)]
于 2017-03-17T14:48:25.410 回答
2

使用boolean function如下:

//a[(contains(@id, 'xx'))=false]
于 2019-11-04T06:13:41.217 回答