2009-10-11 5 views
136

Ich möchte etwas Derartiges schreiben:Wie benutzt man "nicht" in XPath?

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

(alle Links Was bedeutet, dass es ‚id‘ Attribut nicht die Zeichenfolge enthält ‚xx‘)

Ich kann das Recht nicht finden Syntax.

Antwort

198

nicht() ist eine Funktion in XPath (im Gegensatz zu einem Bediener im Gegensatz), so

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

Sie not(expression) Funktion

oder

expression != true() 
7

Keine dieser arbeitete Antworten können für mich für Python. Ich löste dieses

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

Sie können auch in Ihrem XPath durch | Operator oder Zustand. Wie

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

Manchmal wollen wir Element, das keine Klasse hat. So können Sie tun

a[not(@class)] 
+0

In Rubin funktioniert auch: D –