XPath: Bagaimana cara memeriksa apakah ada atribut?


104

Diberikan XML berikut, bagaimana cara menulis kueri XPath untuk menarik node di mana atribut itu fooada ?:

<node1>
  <node2>
    <node3 foo='bar'></node3>
    <node3></node3>
    <node3 bar='foo'></node3>
    <node3 foo='foobar'></node3>
  </node2>
</node1>

Jawaban:


163

Pendek dan manis:

//*[@foo]

Tentu Anda harus menggunakan ekspresi yang lebih spesifik. Tetapi dengan [@attributeName]Anda mendapatkan semua node yang memiliki atribut itu.


25

Gunakan ekspresi XPath berikut

//*[boolean(@foo)]

8

Jika Anda menggunakan dan xpath, ini mungkin dapat membantu Anda:

count(//*[@foo])

Ini akan mengembalikan jumlah node / anak yang memiliki atribut foo

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.