2009-07-17 4 views
5

"show"のパラメータに割り当てられた "2004,2005,2006,2007,2008,2009"という文字列があるとします。文字列内の値のテスト

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

これは動作しません:

さて、これは仕事がない

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

私はそのような文字列の一部をテストするかどうかはわかりません。何か案が?

+0

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

答えて

19

containsを使用してください。

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

はいを印刷しますより詳細な例、。

<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

のDUP私は、次のしている:あなたはこのようにそれを使用することができます ' ... ... ... 'と私はこれのようにチェックしています:' '。私はXPathの構文エラーを取得し続けます。あなたは助けてもらえますか? http://xsltransform.net/pPzifp5/1。私はそれぞれの 'grp#'の内容を取りたいと思います – Si8

2

contains()XPath関数が必要です。

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