EDIT
Beim Lesen Deinen Beitrag nochmal, ich denke die Originalversion meiner Antwort (; unten) ist es nicht.
Sie haben eine Liste bereits - Ihre Variablendeklaration wählt eine Knotenmenge aller <country>
Knoten, die Kinder von <Request>
(ein Knoten-Set ist das XSLT-Äquivalent eines Array/Liste) sind:
<xsl:variable name="$country" select="Request/country" >
Aber der Punkt ist, Sie brauchen nicht einmal brauchen diese Liste als eine separate Variable; alles, was Sie brauchen, ist:
<xsl:when test="Request[country=$country]"><!-- … --></xsl:when>
Wo Request[country=$country]
wie liest „Innerhalb <Request>
, schauen bei jedem <country>
und wählen Sie es, wenn es gleich $country
ist.“ Wenn der Ausdruck eine nicht leere Knotenmenge zurückgibt, befindet sich $country
in der Liste.
Das ist in der Tat, was Rubens Farias von Anfang an gesagt hat. :)
Ursprüngliche Antwort, für die Aufzeichnung gehalten.
Wenn von "Liste" bedeuten Sie eine durch Kommata getrennte Zeichenfolge von Token:
<!-- 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>
diese Liste gehört auf dem XML-Eingang? –
Wie lautet die Eingabe-XML? Sind die Ländercodes Textknoten Kinder oder Elemente oder z.B. Attribute? –
jelovirt