[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

RE: [xsl] Problem with xslt recursion


Subject: RE: [xsl] Problem with xslt recursion
From: "Andrew Welch" <AWelch@xxxxxxxxxxxxxxx>
Date: Tue, 10 Feb 2004 17:09:25 -0000

> and i have a recursive call to a template whose
> function is to concatenate all the values with the tag
> name Type..(The actual functionality of the template
> is more than what is being described here..which
> cannot be disclosed)
> 
> <xsl:template name="build">
> <xsl:param name="ResourceName"/>
> <xsl:param name="Index"/>
> <xsl:param name="Count"/>
> <xsl:variable name="try">
> <xsl:value-of select ="ResourceTypeSet/Type[$In]"/> 
> </xsl:variable> <xsl:if test="$Index &lt; $Count"> 
> <xsl:call-template name="buildResourceName"> <xsl:with-param 
> name="ResourceName"><xsl:value-of
> select="concat($ResourceName,$TempResource)"/>    
> </xsl:with-param>
> <xsl:with-param name="Index"><xsl:value-of 
> select="$Index+1"/></xsl:with-param>
> 
> <xsl:with-param name="Count"
> select="$Count"></xsl:with-param>
> </xsl:call-template>
> </xsl:if>
> </xsl:template>
> 
> The initial call to the template is as follows 
> 
> <xsl:call-template name="build">
> <xsl:with-param name="ResourceName"/>
> <xsl:with-param name="Index" select="1"/>
> <xsl:with-param name="Count" select="$Count+1"> </xsl:call-template>
> 
> The problem is that for each recursive call to the
> template the value of try remains R1...
> whereas it should have been R1 in the first call..
> R2 for the next call..and R3 for the third cal..
> 
> I wanna know if what i am doing in the template is
> correct..

Unless you show the recursive template there's not much that be done...

Im guessing you are calling the named template multiple times from the
same template, rather than calling the template from itself.  So you
aren't actually using recursion at all.  If you post the template it
should show this :)

cheers
andrew

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



Current Thread