XPath: Como verificar se existe um atributo?


104

Dado o seguinte XML, como escrevo uma consulta XPath para puxar nós onde o atributo fooexiste ?:

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

Respostas:


163

Curto e grosso:

//*[@foo]

Claro que você deve usar uma expressão mais específica. Mas com [@attributeName]você obtém todos os nós que possuem esse atributo.


25

Use a seguinte expressão XPath

//*[boolean(@foo)]

8

Se você usa e xpath, isso pode ajudá-lo:

count(//*[@foo])

ele retornará a contagem de nodos / filhos que possuem o atributo foo

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.