检查给定节点的属性是否具有列表中的一个值

时间:2016-03-11 10:56:07

标签: xslt

当给定属性具有列表中的一个值时,我需要采取一些操作(打印一些目标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语句更简洁的方式实现给定的功能,以及如何做到这一点?

1 个答案:

答案 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')">