2009-07-17 7 views
5

Diciamo che ho la stringa "2004,2005,2006,2007,2008,2009" che viene assegnata al parametro di "mostra".Test per un valore all'interno di una stringa

Ora, questo funziona:

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

Questo non funziona:

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

Non sono sicuro di come eseguire il test per la parte di una stringa del genere. Qualche idea?

+0

Dup di http://stackoverflow.com/questions/569908/is-there-an-xsl-contains-directive – Vadzim

risposta

19

Utilizzare contains.

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

Un esempio più dettagliato, che stamperà .

<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> 
+0

ho il seguente: ' ... ... ... 'e lo sto verificando in questo modo:' '. Continuo a ricevere l'errore di sintassi XPath. Puoi per favore aiutare? http://xsltransform.net/pPzifp5/1. Vorrei prendere il contenuto per ogni 'grp #' – Si8

2

È necessaria la funzione XPath contains(). Si può usare in questo modo:

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