online attribute xpath

attribute - XPath: ¿cómo seleccionar nodos que no tienen atributos?



xpath php (3)

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 tengan atributos que estén todos vacíos. Si solo le interesaba un atributo en particular, en lugar de todos, podría usarlo

//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 atributo1 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>

Usando XPath, ¿cómo seleccionar nodos que no tienen atributos (donde el recuento de atributos = 0)?

Por ejemplo:

<nodes> <node attribute1="aaaa"></node> <node attribute1="bbbb"></node> <node></node> <- FIND THIS </nodes>


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

Seleccionará todo <nodo> con cero atributos


//node[not(@*)]

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