如何在 XSL 中标记字符串并使用 for-each 迭代标记?
可能的重复:
xslt有split()函数吗?
我想标记逗号分隔的变量我的 XSL 样式表,然后使用 for-each 迭代标记以打印每个标记的值,执行此操作的最佳方法是什么?
<xsl:variable name="columns" select="'EMPID,NAME,DEPT"/>
<xsl:for-each select=???/>
<!-- print name of token -->
</xsl:for-each>
Possible Duplicate:
Does xslt have split() function?
I want to tokenize a comma-separated variable in my XSL style sheet, then iterate over the tokens using for-each to print the value of each token, what's the best way to do this?
<xsl:variable name="columns" select="'EMPID,NAME,DEPT"/>
<xsl:for-each select=???/>
<!-- print name of token -->
</xsl:for-each>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
对于 XSLT 2.0,您只需使用
for-each select="tokenize($columns, ',')"
。使用 XSLT 1.0,您需要检查是否支持类似的 EXSLT 或其他扩展功能:Well with XSLT 2.0 you would simply use
for-each select="tokenize($columns, ',')"
. With XSLT 1.0 you would need to check whether a similar EXSLT or other extension function is supported:如果您使用的是 XSLT 1.0 和 XPath 1.0,那么您无法编写
(即使允许虚假的单引号:)
您所能做的就是编写一个递归模板,使用 XPath 调用 string-before 和 string-after 来分割字符串。
如果您更详细地描述您需要做什么,包括真实数据,那么也许我们可以帮助您。
If you are using XSLT 1.0 and XPath 1.0 then you cannot write
(even allowing for the spurious single-quote :)
All you can do is write a recursive template that splits the string using XPath calls to string-before and string-after.
If you describe what you need to do in more detail, including real data, then perhaps we can help you.