Saltar al contenido

XPath: ¿Cómo seleccionar nodos que no tienen atributos?

Solución:

//node[not(@*)]

Ese es el XPath para seleccionar todos los nodos llamados “nodo” en el documento sin ningún atributo.

//node[count(@*)=0]

Seleccionará todo con cero atributos

Para abordar el comentario de Marek Czaplicki y ampliar la respuesta

//node[not(@*) or not(string-length(@*))]

…. seleccionará todos los elementos de nodo con atributos cero O que tengan atributos que estén todos vacíos. Si solo le interesa un atributo en particular, en lugar de todos ellos, puede usar

//node[not(@attribute1) or not(string-length(@attribute1))]

… y esto seleccionaría todos los elementos de nodo que no tienen un atributo llamado attribute1 O que tienen un attribute1 atributo que está vacío.

Es decir, los siguientes elementos serían seleccionados 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>

Vea el ejemplo de jsfiddle aquí

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *