Estoy escribiendo una hoja de estilo xslt para transformar un xml en otro xml.node-set en xpath
Aquí es la versión simplificada de XML original:
<eml>
<datatable>
<physical>
<distribution id="100"/>
</physical>
</datatable>
<software>
<implementation>
<distribution id="200"/>
</implementation>
</software>
<additionalMetadata>
<describes>100</describes>
<describes>200</describes>
<describes>300</describes>
<describes>400</describes>
</additionalMetadata>
</eml>
intento utilizar un XPath para seleccionar conjunto de nodos de "describe" que no tiene el valor que es igual al valor de la identificación de //physical/distribution
o software/implementation/distribution
. En caso anterior, quiero para obtener el conjunto de nodos:
<deseribes>300</describes>
<deseribes>400</describes>
(100 y 200 son los valores de atributo id de //physical/distribution
o software/implementation/distribution
).
escribí algo como:
<xsl:with-param name="describes-list"
select="./describes[//physical/distribution/@id !=. and
//software/implementation/distribution/@id != .] "/>
Funciona en el ejemplo anterior. Sin embargo, el elemento de la tabla de datos y el software son repetibles. Así que esto es válido xml:
<eml>
<datatable>
<physical>
<distribution id="100"/>
</physical>
</datatable>
<datatable>
<physical>
<distribution id="300"/>
</physical>
</datatable>
<software>
<implementation>
<distribution id="200"/>
</implementation>
</software>
<additionalMetadata>
<describes>100</describes>
<describes>200</describes>
<describes>300</describes>
<describes>400</describes>
</additionalMetadata>
</eml>
Pero mi XSLT no funciona en el ejemplo anterior :(
¿le importaría arrojar algo de luz sobre este Gracias de antemano
Jing
?!