EXSLT - str:split - XSLT Template Implementation

Supported Version: 1
XML Definition: str.split.xml
Source: str.split.template.xsl

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 History

Submitted: 2001-10-15
Creator: Kipp Howard

The str:split function splits a string at the occurrences of a pattern string.
VersionModifiedByDetails
1.12002-08-20Craig Stewart

Added 4XSLT implementation to the list.

http://www.exslt.org/str/functions/split/str.split.template.xsl.html last modified 2002-08-20