Testen auf einen Wert innerhalb einer Zeichenfolge

Nehmen wir an, ich habe die Zeichenfolge "2004,2005,2006,2007,2008,2009", die dem Parameter "show" zugewiesen ist.

Jetzt funktioniert das:

<xsl:if test="$show='2004'">
    //stuff
</xsl:if>

Das funktioniert nicht:

<xsl:if test="$show='2005'">
    //stuff
</xsl:if>

Ich bin mir nicht sicher, wie ich einen Teil einer solchen Saite testen soll. Irgendwelche Idee?

Antwort auf "Testen auf einen Wert innerhalb einer Zeichenfolge " 2 von antworten

Verwenden Sie contains. .

<xsl:if test="contains($show, '2004')">
    //stuff
</xsl:if>

Ein detaillierteres Beispiel, das ja drucken wird.

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="/">
        <xsl:variable name="show" select="'2004,2005,2006,2007,2008,2009'"/>
        <xsl:if test="contains($show, '2004')">yes</xsl:if>
        <xsl:if test="not(contains($show, '2004'))">no</xsl:if>
    </xsl:template>
</xsl:stylesheet>

Sie benötigen die funktion contains() XPath. Sie können es wie folgt verwenden:

<xsl:if test="contains($show,'2005')">
  //stuff
</xsl:if>