EDITAR
Tras la lectura su publicación nuevamente, creo que la versión original de mi respuesta (a continuación) no es así.
Usted tiene una lista ya - su declaración de variables selecciona un conjunto de nodos de todos los <country>
nodos que son hijos de <Request>
(un conjunto de nodos es el XSLT equivalente de un conjunto de discos/una lista):
<xsl:variable name="$country" select="Request/country" >
Pero el punto es que ni siquiera necesita esa lista como una variable separada; todo lo que necesita es:
<xsl:when test="Request[country=$country]"><!-- … --></xsl:when>
Dónde Request[country=$country]
lee como "Dentro <Request>
, mirar cada <country>
y seleccionarla si es igual a $country
." Cuando la expresión devuelve un conjunto de nodos vacío, $country
está en la lista.
Que es, de hecho, lo que dijo Rubens Farias desde el principio. :)
Respuesta original, mantenida para el registro.
Si por "lista" que significa una cadena separada por comas de fichas:
<!-- instead of a variable, this could be a param or dynamically calculated -->
<xsl:variable name="countries" select="'EG, KSA, UAE, AG'" />
<xsl:variable name="country" select="'KSA'" />
<xsl:choose>
<!-- concat the separator to start and end to ensure unambiguous matching -->
<xsl:when test="
contains(
concat(', ', normalize-space($countries), ', ')
concat(', ', $country, ', ')
)
">
<xsl:text>IN</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>OUT</xsl:text>
</xsl:otherwise>
</xsl:choose>
que pertenece en su lista de entrada XML? –
¿Cómo es el XML de entrada? ¿Los códigos de país son nodos de texto hijo o elementos o p. Ej. atributos? –
jelovirt