Birden çok koşul içeren XPath


157

Belirtilen ad özniteliğine sahip herhangi bir kategori ve belirtilen değere sahip herhangi bir alt düğüm yazarını seçmek için ne XPath kullanabilirim?

Başarısız bir şekilde aşağıdaki yolun farklı varyasyonlarını denedim:

//quotes/category[@name='Sport' and author="James Small"]

XML:

<?xml version="1.0" encoding="utf-8"?>
<quotes>
  <category name="Sport">
   <author>James Small<quote date="09/02/1985">Quote One</quote><quote             date="11/02/1925">Quote nine</quote></author>
  </category>
   <category name="Music">
   <author>Stephen Swann
 <quote date="04/08/1972">Quote eleven</quote></author>
  </category>
  </quotes>

Yanıtlar:


249

Deneyin:
//category[@name='Sport' and ./author/text()='James Small']


4
Takipçiler için, "Beklenen] hata iletisi bulundu, ancak bulundu: &&" demek "&&" yerine ve anahtar sözcüğünü kullanın (bu yanıtın belirttiği gibi)
rogerdpack

31

Kullanım :

/category[@name='Sport' and author/text()[1]='James Small']

veya kullan:

/category[@name='Sport' and author[starts-with(.,'James Small')]]

//Mümkün olduğunca sahte operatör kullanmaktan kaçınmaya çalışmak iyi bir kuraldır , çünkü değerlendirmesi genellikle çok yavaş olabilir.

Ayrıca:

./somename

şuna eşittir:

somename

bu nedenle ikincisini kullanmanız önerilir.


14

soru net değil, ama anladığım kadarıyla ad özniteliği olan ve belirtilen değere sahip çocuk yazarı olması gereken bir kategoriyi seçmeniz gerekiyor, eğer çalışıyorsam beni düzeltin

işte bir xpath

//category[@name='Required value'][./author[contains(.,'Required value')]]
e.g
//category[@name='Sport'][./author[contains(.,'James Small')]]

1

Xpath içinde ve, veya tuşlarını kullanarak birden çok koşul uygulayabilirsiniz.

//input[@class='_2zrpKA _1dBPDZ' and @type='text']

//input[@class='_2zrpKA _1dBPDZ' or @type='text']

-1

Burada da bu şekilde yapabiliriz:

//category [@name='category name']/author[contains(text(),'authorname')]

VEYA

//category [@name='category name']//author[contains(text(),'authorname')]

Ayrıntılı XPATH öğrenmek için lütfen ziyaret ediniz - selenyum xpath detaylı

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.