web-dev-qa-db-fra.com

Comment utiliser "not" dans xpath?

Je veux écrire quelque chose du genre:

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

(ce qui signifie que tous les liens pour lesquels l'attribut 'id' ne contient pas la chaîne 'xx')

Je ne trouve pas la bonne syntaxe.

158
Guy

not () est une fonction dans xpath (par opposition à un opérateur), donc

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

vous pouvez utiliser not(expression) fonction

ou

expression != true()
38

Aucune de ces réponses n'a fonctionné pour moi pour python. J'ai résolu par ça

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

Aussi, vous pouvez utiliser ou conditionner dans votre xpath par | _ opérateur. Tel que

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

Parfois, nous voulons un élément qui n'a pas de classe. Alors tu peux faire comme

a[not(@class)]
10
Harun ERGUL