Estoy trabajando en un desarrollo XSL y necesito conocer el equivalente NOT IN en XPATH. Estoy presentando el XML y el XSL en el formato más simple que sería comprensible para todos.No equivalente IN en la expresión XPath
<?xml-stylesheet type="text/xsl" href="XSL.xsl"?>
<Message>
<Customers>
<Customer pin="06067">1</Customer>
<Customer pin="06068">2</Customer>
<Customer pin="06069">3</Customer>
<Customer pin="06070">4</Customer>
<Customer pin="06072">5</Customer>
</Customers>
<Addresses>
<Address pin1="06067">A</Address>
<Address pin1="06068">B</Address>
<Address pin1="06069">C</Address>
</Addresses>
</Message>
XSL
<xsl:template match="/Message">
<html>
<body>
<h4>Existing Customers</h4>
<table>
<xsl:apply-templates select="//Customers/Customer[@pin = //Addresses/Address/@pin1]"></xsl:apply-templates>
</table>
<h4>New Customers</h4>
<table>
<!--This place need to be filled with new customers-->
</table>
</body>
</html>
</xsl:template>
<xsl:template match="Customer" name="Customer">
<xsl:variable name="pin" select="./@pin"></xsl:variable>
<tr>
<td>
<xsl:value-of select="."/>
<xsl:text> is in </xsl:text>
<xsl:value-of select="//Addresses/Address[@pin1=$pin]"/>
</td>
</tr>
</xsl:template>
En el XSLT anteriormente, en el área de comentarios, tenemos que asociar y mostrar los clientes que de dirección no es existente en el Direcciones/nodo de dirección.
Ayúdenos a encontrar una expresión XPath que coincida con los clientes que NO están en el conjunto de Nodo de direcciones. (Cualquier alternativa también podría ayudar)
Buena pregunta (1). Vea mi respuesta para una solución XSLT corta, simple y eficiente. :) –