Subject: RE: [xsl] strings and recursive templates From: Jarno.Elovirta@xxxxxxxxx Date: Fri, 19 Jul 2002 14:20:55 +0300 |
Hi, > I would have thought the following templates should produce the same > result, one uses choose/when, one uses if, however the value-of at the > end of template t2 seems to keep track of the whole string... > if I step > through the code the debugger stays on that line the number > of times the > template has been recursively called - which is a bit strange... > > Using this data: > > <node>1 | 2 | 3 | 4 | 5</node> > > I would expect this result: > > 1 2 3 4 5 > > which is what t1 gives me, whereas t2 produces: > > 1 2 3 4 5 4 | 5 3 | 4 | 5 2 | 3 | 4 | 51 | 2 | 3 | 4 | 5 > > why is this? saxon and msxml4 both produce the same so Im > guessing its a > gap in my understanding rather than a processor issue... > > <xsl:template name="t1"> > <xsl:param name="string" select="''"/> > <xsl:choose> > <xsl:when test="contains($string,'|')"> > <xsl:value-of select="substring-before($string,'|')"/> > <xsl:call-template name="t1"> > <xsl:with-param name="string" > select="substring-after($string,'|')"/> > </xsl:call-template> > </xsl:when> > <xsl:otherwise> > <xsl:value-of select="$string"/> > </xsl:otherwise> > </xsl:choose> > </xsl:template> > > > <xsl:template name="t2"> > <xsl:param name="string" select="''"/> > <xsl:if test="contains($string,'|')"> > <xsl:value-of select="substring-before($string,'|')"/> > <xsl:call-template name="t2"> > <xsl:with-param name="string" > select="substring-after($string,'|')"/> > </xsl:call-template> > </xsl:if> > <xsl:value-of select="$string"/> Because here you're outputting the value of $string every time the template is called. Santtu XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] strings and recursive tem, David Carlisle | Thread | RE: [xsl] strings and recursive tem, Andrew Welch |
Re: [xsl] in XSL other than , Joerg Heinicke | Date | Re: [xsl] in XSL other than , Jochen Metzger |
Month |