1

私のxsltコードでは、以下のような条件が必要です

<xsl:when test="$CreditCardType ='SWITCH' 
                and 
                ($ccLength =16 
                 or $ccLength =18 
                 or $ccLength =19)">
  <xsl:value-of select="true()"/>
</xsl:when>

<xsl:when test="$firstFourDigits ='5018' 
                or $firstFourDigits ='5020' 
                or $firstFourDigits ='5038' 
                or $firstFourDigits ='6304' 
                or $firstFourDigits ='6759' 
                or $firstFourDigits ='6761' 
                or $firstFourDigits ='6763'">
  <xsl:value-of select="'MAESTRO'"/>
</xsl:when>

とにかく、これらの複数または条件を回避して、以下のようにコードを簡素化できますか?

<xsl:when test="$firstFourDigits ='5018' | '5020' | '5038' | '6304' | '6759' | '6761'| '6763'">
                        <xsl:value-of select="'MAESTRO'"/>
                    </xsl:when>
4

1 に答える 1

2

xslt 2.0 では、これを作成できます

test="$firstFourDigits = 
      ('5018', '5020', '5038', '6304', '6759', '6761', '6763')"

concat()xslt 1.0では、おそらく使用してcontains()機能することができます

contains(concat('5018|', '5020|', '5038|', 
         '6304|', '6759|', '6761|', '6763|'), 
          concat($firstFourDigits, '|'))
于 2013-08-14T19:29:03.237 に答える