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

Subject: [xsl] Identity Tranlate, too many nested apply-templates
From: Karl Stubsjoen <kstubs@xxxxxxxxx>
Date: Tue, 24 Mar 2009 09:20:10 -0700
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?

    <xsl:template match="@* | node()">
        <xsl:copy>
            <xsl:apply-templates select="@* | node()" />
        </xsl:copy>
    </xsl:template>

Thanks!

Karl..

Current Thread