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

Re: [xsl] Identity Tranlate, too many nested apply-templates


Subject: Re: [xsl] Identity Tranlate, too many nested apply-templates
From: Karl Stubsjoen <kstubs@xxxxxxxxx>
Date: Tue, 24 Mar 2009 09:29:14 -0700

Boing!  Of course that is the problem!
Here is the entire match template:

    <xsl:template match="Order">
        <xsl:element name="CustomerOrder">
        <xsl:apply-templates select="key('customer', CustomerID)" />
        <xsl:element name="Orders">
            <xsl:apply-templates select=". |
following-sibling::Order[CustomerID = current()/CustomerID]" />
            </xsl:element>
        </xsl:element>
    </xsl:template>

Dohh!  Sometimes the obvious slips right through the fingers.  I'll
add "mode" to my identity-copy routine.
Thanks Martin.

Karl..

On Tue, Mar 24, 2009 at 9:26 AM, Martin Honnen <Martin.Honnen@xxxxxx> wrote:
> Karl Stubsjoen wrote:
>>
>> So I have something like this:
>>
>>        <xsl:element name="Orders">
>>            <xsl:apply-templates select=". |
>> following-sibling::Order[CustomerID = current()/CustomerID]" />
>>            </xsl:element>
>>        </xsl:element>
>>
>>
>> Consider the above a unique match on a node "Order", to which I'm
>> wrapping in a new node "Orders", and performing other node magic.  I
>> am then applying templates, as you see, to grab all Order nodes which
>> have same CusomterID value.  There is also the . "dot" so that I am
>> adding the uniquely matched Order node to the result.
>>
>> I have your basic identity copy routine, and it fails in here with
>> "Too many nested apply-templates calls".  If I remove the . "dot" in
>> the select above, I do not get this error.  Why?
>
> Can you show us the match pattern? If the above is in an
>  <xsl:template match="Order">
> and you then do
>    <xsl:apply-templates select="."/>
> then you get infinite recursion, don't you?
> You might want to use a mode attribute to avoid that.
>
>
>
> --
>
>        Martin Honnen
>        http://JavaScript.FAQTs.com/


Current Thread