如何在XPath中使用“not”?

问题描述 投票:0回答:5

我想写一些类似的东西:

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

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

我找不到正确的语法。

dom xpath xpathquery
5个回答
278
投票

not()
是 XPath 中的函数(而不是运算符),所以

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

42
投票

您可以使用

not(expression)
功能

expression != true()

19
投票

这些答案都不适合我的Python。我用这个解决了

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

您还可以通过

|
运算符在 xpath 中使用或调节。比如

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

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

a[not(@class)]

2
投票

使用

boolean function
,如下所示:

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

0
投票

not() 函数与“and”运算符相结合在我的例子中起作用。我正在使用打字稿。 例如,

contains(text(),'textIWantToBeMatched') and not(contains(text(),'subTextIDoNotWantToBeMatched'))
© www.soinside.com 2019 - 2024. All rights reserved.