我有以下问题,基本上我只是想创建一个自定义数组,类似于 - 黄色|红色|绿色
在使用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
任何想法,可能出现什么问题?
答案 0 :(得分:4)
使用XSLT 1.0,您的变量包含结果树片段(RTF),但您无法对其进行任何操作,只能使用xsl:copy-of
或xsl: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"
。