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

Subject: Re: [xsl] Identity Tranlate, too many nested apply-templates
From: Martin Honnen <Martin.Honnen@xxxxxx>
Date: Tue, 24 Mar 2009 17:26:04 +0100
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