XPath: Як перевірити, чи існує атрибут?


104

З огляду на наступний XML, як мені написати запит XPath, щоб витягнути вузли, де fooіснує атрибут ?

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

Відповіді:


163

Коротке і солодке:

//*[@foo]

Звичайно, слід використовувати більш конкретний вираз. Але [@attributeName]ви отримуєте всі вузли, які мають цей атрибут.


25

Використовуйте наступний вираз XPath

//*[boolean(@foo)]

8

Якщо ви використовуєте xpath, можливо, це може допомогти вам:

count(//*[@foo])

він поверне кількість вузлів / дочірніх, які мають атрибут foo

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.