Modules | Supported Version: 1 Source<xsl:template name="str:split"> <xsl:param name="string" select="''" /> <xsl:param name="pattern" select="' '" /> <xsl:choose> <xsl:when test="not($string)" /> <xsl:when test="not($pattern)"> <xsl:call-template name="str:_split-characters"> <xsl:with-param name="string" select="$string" /> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:call-template name="str:_split-pattern"> <xsl:with-param name="string" select="$string" /> <xsl:with-param name="pattern" select="$pattern" /> </xsl:call-template> </xsl:otherwise> </xsl:choose> </xsl:template> <xsl:template name="str:_split-characters"> <xsl:param name="string" /> <xsl:if test="$string"> <token> <xsl:value-of select="substring($string, 1, 1)" /> </token> <xsl:call-template name="str:_split-characters"> <xsl:with-param name="string" select="substring($string, 2)" /> </xsl:call-template> </xsl:if> </xsl:template> <xsl:template name="str:_split-pattern"> <xsl:param name="string" /> <xsl:param name="pattern" /> <xsl:choose> <xsl:when test="contains($string, $pattern)"> <xsl:if test="not(starts-with($string, $pattern))"> <token> <xsl:value-of select="substring-before($string, $pattern)" /> </token> </xsl:if> <xsl:call-template name="str:_split-pattern"> <xsl:with-param name="string" select="substring-after($string, $pattern)" /> <xsl:with-param name="pattern" select="$pattern" /> </xsl:call-template> </xsl:when> <xsl:otherwise> <token> <xsl:value-of select="$string" /> </token> </xsl:otherwise> </xsl:choose> </xsl:template> Change HistorySubmitted: 2001-10-15
|
http://www.exslt.org/str/functions/split/str.split.template.xsl.html last modified 2002-08-20