Todos los grandes respuestas! Pero la cuestión merece refinamiento ...Trabajar con anidada XPath predicados ...
Tengo el siguiente código XML muestra ...
<objects>
<object objectId="1123" ... />
<properties refObjectId="1123" ... />
<properties refObjectId="1123" refPropertyId="2311" ... />
<properties refObjectId="1123" refPropertyId="4611" ... />
<object objectId="2123" ... />
<properties refObjectId="2123" refPropertyId="4311" ... />
<properties refObjectId="2123" refPropertyId="8611" ... />
....
</objects>
... y la siguiente consulta XPath ...
//object[//properties[@[email protected] and not(@refPropertyId)]]
pensé esta consulta devolvería todos los nodos object
donde hay un nodo properties
que tiene un atributo refObjectId
que es igual al atributo objectId
del nodo object
y no tiene atributos 'refPropertyId' bute ... es decir, solo el objeto 1123, no el objeto 2123 ... pero no es así. Parece que el @objectId
en el predicado anidado no hace referencia al atributo objectId
del nodo object
.
¿Alguna idea? Sé que la estructura XML no está anidada como era de esperar, pero hay razones para esta estructura.
¿Tiene varios nodos de objeto dentro del nodo de objetos donde las propiedades de un objeto particular se encuentran justo debajo de ese objeto? –