2009-08-24 17 views

risposta

108
//node[not(@*)] 

Questo è il XPath per selezionare tutti i nodi denominati "nodo" nel documento senza attributi .

+0

+1 - Questa è la soluzione più XPath-y. :) – Tomalak

+0

Questo è bello, ma trova ancora '' qualcosa che possiamo fare al riguardo? –

+0

@MarekCzaplicki vedere la risposta qui sotto per affrontare questo caso. https://stackoverflow.com/questions/1323755/xpath-how-to-select-nodes-which-have-no-attributes/43910689#43910689 – pip

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

selezionerà tutti <nodo> da zero attributi

3

Per affrontare testa di Marek Czaplicki e ampliare la risposta

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

.... selezionerà tutti elementi di nodo con attributi o nulli aventi attributi che sono tutti vuoti. Se fosse solo un attributo particolare che ti interessa, piuttosto che tutti loro, allora si potrebbe utilizzare

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

... e questo sarebbe selezionare tutti gli elementi di nodo che o non hanno un attributo chiamato attribute1 O che hanno un attributo attribute1 vuoto.

Cioè, i seguenti elementi sarebbero selezionati da una di queste espressioni XPath

<nodes> 
    <node attribute1="aaaa"></node> 
    <node attribute1=""></node> <!--This one --> 
    <node attribute1="bbbb"></node> 
    <node></node> <!--...and this one --> 
</nodes> 
Problemi correlati