Re: [xsl] Parent Node recursion template fails

Subject: Re: [xsl] Parent Node recursion template fails
From: Karl Stubsjoen <kstubs@xxxxxxxxx>
Date: Wed, 8 Feb 2012 19:39:10 -0700
As usual, there is always clear and meaningful explanation.  Thanks!

On Wed, Feb 8, 2012 at 4:58 PM, Michael Kay <mike@xxxxxxxxxxxx> wrote:
> You don't have a template rule that matches the document node (/) in mode
> navigation-special_paint-selected, so when the recursion reaches the root,
> the built-in template for document nodes is invoked. The built-in template
> rule applies-templates to its children, so you oscillate infinitely between
> the root document node and its element child. The solution is to add a rule
> for match="/" that does nothing.
>
> Michael Kay
> Saxonica
>
>
> On 08/02/2012 22:50, Karl Stubsjoen wrote:
>>
>> This recursion template is failing.  I'm getting the error, too many
>> recursions...  I would expect that when I get to the root element it
>> would stop recursing.  I guess I need a test for root element.
>> Karl..
>>
>>     <xsl:template match="*" mode="navigation-special_paint-selected">
>>         <xsl:param name="node-id"/>
>>         <xsl:choose>
>>             <xsl:when test="generate-id() = $node-id">
>>                 <xsl:attribute name="background">#eee</xsl:attribute>
>>             </xsl:when>
>>             <xsl:otherwise>
>>                 <xsl:apply-templates select="parent::node()"
>> mode="navigation-special_paint-selected">
>>                     <xsl:with-param name="node-id" select="$node-id"/>
>>                 </xsl:apply-templates>
>>             </xsl:otherwise>
>>         </xsl:choose>
>>     </xsl:template>
>



--
Karl Stubsjoen
MeetScoresOnline.com
(602) 845-0006

Current Thread