Considere el siguiente código XML:XPath: es posible combinar consultas
<root>
<steps>
<step>1</step>
<step>2</step>
<step>3</step>
<step>4</step>
</steps>
<stepDetails step="1">Details</stepDetails>
<stepDetails step="2">Details</stepDetails>
<stepDetails step="3">Details</stepDetails>
</root>
Lo que necesito hacer es encontrar todos los pasos que no tienen stepDetails correspondientes. En el ejemplo anterior, solo se devolverá el nodo "<paso/paso>".
Ahora, sé que puedo hacer eso consultando todos los pasos, recorriendo la colección y realizando otra consulta para cada iteración. Espero que haya una forma de hacerlo con una sola consulta. Tal vez usando algo como la declaración IN de SQL y una subconsulta.
Cualquier idea o sugerencia sería muy apreciada.
thnx, Christoph
+1 para una respuesta correcta. –
La consulta inversa sería: /root/stepDetails/@ step [no (. =/Root/steps/step)] ? Si comento alguno de los pasos (por ejemplo, el paso 3), esa consulta XPath lo encontrará. ¿Hay alguna forma de incluir el paso 4 en un resultado de consulta? – Christoph
No estoy seguro de lo que quiere decir con una consulta inversa, pero si está tratando de encontrar stepDetails sin el paso correspondiente lo haría:/root/stepDetails [not (@step =/root/steps/step)] - como para incluir el paso 4 creo que está incluido en los resultados de la consulta que di en la respuesta? –