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.