如何在 XPath 中使用“ not”?

我想写一些这样的东西:

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

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

我找不到正确的语法。

175765 次浏览

not()是 XPath 中的函数(与运算符相反) ,因此

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

你可以使用 not(expression)函数

或者

expression != true()

这些答案对我来说都不适用,我用这个解决了

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

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

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

有时候我们需要没有类的元素,所以你可以这样做

a[not(@class)]

使用 boolean function如下:

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