Para abordar el comentario de Marek Czaplicki y ampliar la respuesta
//node[not(@*) or not(string-length(@*))]
.... seleccionará todos los elementos de nodo con cero atributos o que tienen atributos que son todas vacías. Si fuera sólo un atributo particular le interesa, más que todos ellos, entonces se podría utilizar
//node[not(@attribute1) or not(string-length(@attribute1))]
... y esto seleccione todos los elementos de nodo que o bien no tienen un atributo llamado attribute1
O que tienen un atributo attribute1
que está vacío.
Es decir, los siguientes elementos serían recogidos por cualquiera de estas expresiones XPath
<nodes>
<node attribute1="aaaa"></node>
<node attribute1=""></node> <!--This one -->
<node attribute1="bbbb"></node>
<node></node> <!--...and this one -->
</nodes>
+1 - Esa es la solución más XPath-y. :) – Tomalak
Esto es bueno, pero todavía encuentra ' ' ¿hay algo que podamos hacer al respecto? –
@MarekCzaplicki consulte la respuesta a continuación para abordar este caso. https://stackoverflow.com/questions/1323755/xpath-how-to-select-nodes-which-have-no-attributes/43910689#43910689 – pip