This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

string split


Given
<doc>
<elem>5,6,7</elem>
</doc>

I need an output of

<a href="#id5">5</a>&nbsp;<a href="#id6">6</a>&nbsp;<a
href="#id7">7</a>&nbsp;

I think its a recursive call to a string splitter template.
I cant figure out how to 'build up the answer'

template (non worker) is

 <xsl:template name="links">
    <xsl:param name="str"/>
  <xsl:param name="res"/>
 

  <xsl:choose>
    <xsl:when test="contains($str,',')">
      <xsl:call-template name="links">
          <xsl:with-param name="str" select="substring-after($str,',')"/>
          <xsl:with-param name="res"><xsl:value-of select="$res"/>
            <a href="#id{substring-before($str,',')}"><xsl:value-of
select="substring-before($str,',')"/></a></xsl:with-param>
          </xsl:call-template>
        </xsl:when>
        <xsl:otherwise>
        
          <xsl:value-of select="$res"/>
        </xsl:otherwise>
      </xsl:choose>
  </xsl:template>

Called using

  <xsl:call-template name="links">
          <xsl:with-param name="str" select="."/>
          <xsl:with-param name="res" select="''"/>
        </xsl:call-template>

Where . contains 5,6,7 as a string.

Any help appreciated.
DaveP


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]