This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
string split
- To: "Xsl List (E-mail)" <xsl-list at mulberrytech dot com>
- Subject: string split
- From: "Pawson, David" <DPawson at rnib dot org dot uk>
- Date: Tue, 19 Sep 2000 11:46:43 +0100
- Reply-To: xsl-list at mulberrytech dot com
Given
<doc>
<elem>5,6,7</elem>
</doc>
I need an output of
<a href="#id5">5</a> <a href="#id6">6</a> <a
href="#id7">7</a>
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