Xpath'te “not” nasıl kullanılır?


164

Bu tür bir şey yazmak istiyorum:

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

('id' özelliğinin var olduğu tüm bağlantılar 'xx' dizesini içermiyor demektir)

Doğru sözdizimini bulamıyorum.

Yanıtlar:


241

not (), xpath (işleç yerine) işlevidir, yani

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

içindeki tüm <p> etiketlerini almanın, ancak <a> etiketini almanın bir yolu var mı? <p> metin metni <a class="x"> METİN </a> metin metni </p> gibi bir şey düşünün. i tüm metin istiyorum ama bir METİN değil. XPath ile mümkün mü? Bu tam olarak benim durumum değil, bundan biraz daha karmaşık ama az çok aynı.
Ali


13

Bu cevapların hiçbiri python için işe yaramadı. Bununla çözdüm

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

Ayrıca xpath'inizde |operatörünüzü kullanabilir veya koşullandırabilirsiniz . Gibi

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

Bazen sınıfı olmayan bir element isteriz. Böylece beğenebilirsin

a[not(@class)]

1

boolean functionAşağıdaki gibi kullanın :

//a[(contains(@id, 'xx'))=false]
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.