XPath dengan berbagai kondisi


157

XPath apa yang bisa saya gunakan untuk memilih kategori apa saja dengan atribut nama yang ditentukan dan penulis simpul anak apa pun dengan nilai yang ditentukan.

Saya telah mencoba berbagai variasi jalur di bawah ini tanpa hasil:

//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>

Jawaban:


248

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


4
Untuk pengikut, pesan kesalahan "Diharapkan], tetapi ditemukan: &&" berarti "menggunakan dan kata kunci alih-alih &&" (sebagaimana ditentukan oleh jawaban ini)
rogerdpack

31

Gunakan :

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

atau gunakan:

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

Merupakan aturan yang baik untuk mencoba menghindari penggunaan //pseudo-operator bila memungkinkan, karena evaluasinya biasanya bisa sangat lambat.

Juga:

./somename

setara dengan:

somename

jadi disarankan untuk menggunakan yang terakhir.


14

pertanyaan tidak jelas, tetapi apa yang saya pahami Anda harus memilih kategori yang memiliki atribut nama dan harus memiliki penulis anak dengan nilai yang ditentukan, koreksi saya jika saya bekerja

di sini adalah xpath

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

1

Anda dapat menerapkan beberapa kondisi di xpath menggunakan dan, atau

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

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

-1

Di sini, kita juga bisa melakukan ini:

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

ATAU

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

Untuk Mempelajari XPATH secara detail, silakan kunjungi - selenium xpath secara terperinci

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.