Xslt数组和/或循环

时间:2013-09-18 12:09:53

标签: xslt

我有以下问题,基本上我只是想创建一个自定义数组,类似于 - 黄色|红色|绿色

在使用for-each循环浏览这些项目并打印值之后,我创建了这样的内容:

        <xsl:variable name="Colors">
           <m>Yellow</m>
           <m>Red</m>
           <m>Green</m>
        </xsl:variable>

然后我尝试循环它:

        <xsl:for-each select="$Colors">

            <xsl:value-of select ="current()" />                
        </xsl:for-each>

但是我得到了这个错误:Exrpession必须评估节点集$ Colors

任何想法,可能出现什么问题?

1 个答案:

答案 0 :(得分:4)

使用XSLT 1.0,您的变量包含结果树片段(RTF),但您无法对其进行任何操作,只能使用xsl:copy-ofxsl:value-of。幸运的是,大多数XSLT 1.0处理器支持exsl:node-set或类似的将结果树片段转换为节点集,因此您可以使用<xsl:for-each select="exsl:node-set($Colors)/m">...</xsl:for-each>,然后需要在样式表中声明xmlns:exsl="http://exslt.org/common"