假设您要执行子字符串包含的逻辑 OR...
首先,这个select很可能是错的1:
<xsl:variable name="games" select="footballvolleyballchesscarrom"/>
它正在寻找一个名为footballvolleyballchesscarrom 的元素。如果您尝试将游戏设置为 字符串 footballvolleyballchesscarrom,请将其更改为:
<xsl:variable name="games" select="'footballvolleyballchesscarrom'"/>
然后,使用任一
XSLT 1.0
<xsl:when test="contains($games,'chess')
or contains($games,'carrom')">CORRECT</xsl:when>
或
XSLT 2.0
<xsl:when test="matches($games,'chess|carrom')">CORRECT</xsl:when>
测试$games 是否包含您的多个子字符串之一。
1 如果您真的打算从此处的输入 XML 中选择(可能是多个)元素,那么还有另一个 XSLT 2.0 选项可以针对一组可能的值测试所选序列。例如,如果您的输入 XML 是
<games>
<game>football</game>
<game>volleyball</game>
<game>chess</game>
<game>carrom</game>
</games>
然后这个模板,
<xsl:template match="/">
<xsl:variable name="games" select="//game"/>
<xsl:if test="$games = ('chess','carrom')">CORRECT</xsl:if>
</xsl:template>
将输出CORRECT,因为在所选元素的字符串值中至少是chess 或carrom 之一。