问一个xsl的字符串函数?

qozm 2003-11-04 01:40:20
<xml>
<string>
123,233,222:4,223,343:3
</string>
</xml>

我要在xsl中取出用逗号隔开的各个字符串,
比如用 substring(/xml/string,1,3)可以取出 123 来
但是如果我要同时把所有的都取出来,
需要知道逗号在字符串中的位置才行,
有哪个函数可以取得 一个字符在字符串中的位置 的?
...全文
72 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
ssm1226 2003-11-04
  • 打赏
  • 举报
回复
<?xml version='1.0'?>
<?xml-stylesheet type="text/xsl" href="csdn0022.xsl"?>
<root>
<string>
123,233,222:4,223,343:3
</string>
</root>


csdn0022.xsl
<?xml version="1.0" encoding="gb2312"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" encoding="gb2312" indent="yes" method="xml"/>
<xsl:template match="/">
<xsl:call-template name="split">
<xsl:with-param name="strng" select="//string"/>
<xsl:with-param name="p">,</xsl:with-param>
</xsl:call-template>
</xsl:template>

<xsl:template name="split">
<xsl:param name="strng"/>
<xsl:param name="p"/>
<xsl:value-of select="substring-before($strng,$p)"/><br/>

<xsl:choose>
<xsl:when test="contains(substring-after($strng,$p),$p)">
<xsl:call-template name="split">
<xsl:with-param name="strng" select="substring-after($strng,$p)"/>
<xsl:with-param name="p" select="$p"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise><xsl:value-of select='substring-after($strng,$p)'/></xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
Laone 2003-11-04
  • 打赏
  • 举报
回复
<xsl:for-each select="string">
<xsl:eval>this.text.split(/,/g).join("|")</xsl:eval>
</xsl:for-each>

8,906

社区成员

发帖
与我相关
我的任务
社区描述
XML/XSL相关问题讨论专区
社区管理员
  • XML/XSL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧