Pregunta XPath: ¿Cómo verificar si existe un atributo?


Dado el siguiente XML, ¿cómo escribo una consulta XPath para extraer nodos donde el atributo foo existe ?:

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

76
2017-09-17 18:21


origen


Respuestas:


Corto y dulce:

//*[@foo]

Por supuesto, deberías usar una expresión más específica. Pero con [@attributeName] obtienes todos los nodos que tienen ese atributo.


126
2017-09-17 18:26



Use la siguiente expresión XPath

//*[boolean(@foo)]

19
2017-07-18 11:21



Si usa y xpath, esto puede ayudarlo:

count(//*[@foo])

devolverá el recuento de nodo / hijo que tiene atributo foo


8
2017-09-23 09:12