Subject: Re: 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
|