当给定属性具有列表中的一个值时,我需要采取一些操作(打印一些目标XML)。
说我有:
<xsl:when test="$Path/To/List[1]/ELEMENT@attribute = 'code1'">
<xsl:element name="SOME_OTHER_ELEMENT">
<xsl-value-of select="$Path/To/List[1]/OTHER_ELEMENT/>
</xsl:element>
</xsl:when>
但是当@attribute的值为code3,code7,code11,code12和code15时,我需要这样做。
当然,我可以使用or
子句并复制测试表达式X次,但这将非常长,我正在寻找类似in
运算符的东西,但我什么也没找到。
是否有可能以比使用X or
语句更简洁的方式实现给定的功能,以及如何做到这一点?
答案 0 :(得分:0)
在XSLT 2.0及更高版本中,您可以分别使用<xsl:when test="$Path/To/List[1]/ELEMENT[@attribute = ('code1', 'code3', 'code7', 'code12', 'code15')]">
(不确定原始代码的语法错误ELEMENT@attribute
)<xsl:when test="$Path/To/List[1]/ELEMENT/@attribute = ('code1', 'code3', 'code7', 'code12', 'code15')">
。