2012-04-07 20 views

risposta

57

Come posso cercare un primo k fratello dopo m nodo? Fondamentalmente, trova qualche nodo e poi continua la ricerca da quel nodo.

Supponendo che abbiamo la seguente documento XML ben formato:

<t> 
    <n></n> 
    <k></k> 
    <m></m> 
    <k></k> 
</t> 

quindi la seguente espressione XPath:

/*/m[1]/following-sibling::k[1] 

seleziona il primo k following-sibling della prima m figlio dell'elemento superiore del documento XML.

+0

Troppo complicato. –

+0

In realtà, ieri volevo togliere il mio voto negativo, ma il sito mi ha detto che dopo 24 minuti era troppo tardi. È la vita. –

4

bella domanda: provare ........

<a> 
<n></n> 
<k></k> 
<m></m> 
<k></k> <==== 
<k></k> 
<m></m> 
<k></k> 
</a> 


    /a/k[. = preceding::m][1] 
+0

Questa risposta è interessante, ma inizia da ** la prima "m" che ha una "k" dopo di essa **, non da ** il nodo corrente **. –

+0

Inoltre, il bit 'previous :: m' è un riferimento all'indietro? Non sarebbe meno performante di una soluzione alla ricerca di 'm' prima? (Non so) – jpaugh

Problemi correlati