我想在我的XSL样式表中对逗号分隔的变量进行标记,然后使用for-each遍历标记以打印每个标记的值,这是最好的方法吗?
<xsl:variable name="columns" select="'EMPID,NAME,DEPT"/>
<xsl:for-each select=???/>
<!-- print name of token -->
</xsl:for-each>
答案 0 :(得分:2)
使用XSLT 2.0,您只需使用for-each select="tokenize($columns, ',')"
即可。使用XSLT 1.0,您需要检查是否支持类似的EXSLT或其他扩展功能:
<xsl:for-each select="str:tokenize($columns, ',')" xmlns:str="http://exslt.org/strings">...</xsl:for-each>
答案 1 :(得分:0)
如果您使用的是XSLT 1.0和XPath 1.0,则无法编写
<xsl:variable name="columns" select="'EMPID,NAME,DEPT"/>
(甚至允许虚假的单引号:)
您所能做的就是编写一个递归模板,使用XPath调用将字符串拆分为string-before和string-after。
如果您更详细地描述了您需要做的事情,包括真实数据,那么我们可以帮助您。