dom query - Wie benutzt man "nicht" in XPath?




php position (4)

Ich möchte etwas von der Art schreiben:

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

(was bedeutet, dass alle Links, die dort 'ID' Attribut enthält nicht die Zeichenfolge 'xx')

Ich kann die richtige Syntax nicht finden.


Answers

Sie können not(expression) Funktion verwenden

oder

expression != true()

Keine dieser Antworten funktionierte für mich bei Python. Ich habe damit gelöst

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

Sie können auch in Ihrem xpath mit | Operator. Sowie

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

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

a[not(@class)]

not () ist eine Funktion in xpath (im Gegensatz zu einem Operator), also

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

Eine andere Antwort, die Sie in Betracht ziehen sollten, ist, wenn Sie ein Element jQuery , sollten Sie jQuery . Statt es wirklich zu verstecken, entfernen Sie das gesamte Element. Sie kopieren jedoch den HTML Inhalt und das Tag selbst in eine jQuery-Variable und dann Sie müssen nur testen, ob ein solches Tag auf dem Bildschirm angezeigt wird. Verwenden Sie dazu das normale if (!$('#thetagname').length) .





dom xpath xpathquery