2012-04-07 9 views

Respuesta

57

¿Cómo puedo buscar un primer k hermanos después de m nodo? Básicamente, encuentre algún nodo y continúe buscando desde ese nodo.

Suponiendo que tenemos el siguiente documento XML bien formado:

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

continuación, la siguiente expresión XPath:

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

selecciona el primer k siguiente-hermano de la primera m hijo del elemento superior del documento XML.

+0

Demasiado complicado. –

+0

En realidad, ayer quise eliminar mi voto negativo, pero el sitio me dijo que después de 24 minutos ya era demasiado tarde. Así es la vida. –

4

buena pregunta: ¿probarlo ........

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


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

Esta respuesta es interesante, pero comienza desde ** la primera "m" tiene una "k" después de ella **, no de ** el nodo actual **. –

+0

También, ¿ese bit 'previous :: m' es una referencia retrógrada? ¿No sería menos eficiente que una solución que busca 'm' primero? (No sé) – jpaugh

Cuestiones relacionadas