[StackOverflow] XSLT Recursion

EDN Admin

Well-known member
Joined
Aug 7, 2010
Messages
12,794
Location
In the Machine
I have the following xsl code to iterate through a node-set recursively.

<pre lang="x-xml <xsl:template name="ExtractGlobalWeekDayRecursive
<xsl:param name="node-set"/>
<xsl:param name="done"/>
<xsl:param name="result"/>
<xsl:choose>
<xsl:when test="string($done) = false
<xsl:if test="string(node-set[1]/Period/text()) = 1W
<xsl:variable name="WeekDayString" select="XsltHelper:WeekDayToString(string($node-set[1]/ArrivalDate/text()))"/>
<xsl:if test="$WeekDayString !=
<xsl:call-template name="ExtractGlobalWeekDayRecursive
<xsl:with-param name="node-set" select="$node-set[position() > 1]"/>
<xsl:with-param name="done" select="true"/>
<xsl:with-param name="result" select="$WeekDayString"/>
</xsl:call-template>
</xsl:if>
</xsl:if>
<xsl:call-template name="ExtractGlobalWeekDayRecursive
<xsl:with-param name="node-set" select="$node-set[position() > 1]"/>
<xsl:with-param name="done" select="false"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$result"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>[/code]

I get a StackOverflow Exception when runnig this template rule! How could I avoid it, when the node-set holds 500-1000 nodes?


View the full article
 
Back
Top