答CSDN网友:用XSL对字符串进行分割和抽取 
2008/5/10 0:48:55
阅读全文(6221) | 回复(1) | 编辑 | 精华
问题: 字符串:abc ¦def ¦ghi ¦jkl ¦mno 用XSL对字符串进行分割 需要支持手动得到数组的第N个 类似ASP中的Split("abc ¦def ¦ghi ¦jkl ¦mno", " ¦")(N) 这里的N是不确定的,但不会大于数组的数量 答复: test.xml:<?xml version="1.0" ?><?xml-stylesheet type="text/xsl" href="test.xsl" ?><root> <str>abc|def|ghi|jkl|mno</str></root> test.xsl:<?xml version="1.0"?><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:variable name="pos" select="3"/><!--可以通过代码如JScript来动态设置select的值--> <xsl:template match="/"> <xsl:call-template name="temp"> <xsl:with-param name="str" select="."/> <xsl:with-param name="cnt" select="1"/> </xsl:call-template></xsl:template> <xsl:template name="temp"> <xsl:param name="str"/> <xsl:param name="cnt"/> <xsl:choose> <xsl:when test="contains($str,'|')"> <xsl:if test="$cnt = $pos"> <xsl:value-of select="substring-before($str,'|')"/> </xsl:if> <xsl:call-template name="temp"> <xsl:with-param name="str" select="substring-after($str,'|')"/> <xsl:with-param name="cnt" select="$cnt + 1"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:if test="$cnt = $pos"><xsl:value-of select="$str"/></xsl:if> </xsl:otherwise> </xsl:choose></xsl:template> </xsl:stylesheet>结果: ghi
Posted by Qr on 2008/5/10 0:48:55
回复:答CSDN网友:用XSL对字符串进行分割和抽取
2008/5/10 15:06:59
个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除
Posted by 烟雨朦胧 on 2008/5/10 15:06:59
发表评论: |