Re: [xsl] xsl:for-each-group and identity transform

Subject: Re: [xsl] xsl:for-each-group and identity transform
From: David Carlisle <davidc@xxxxxxxxx>
Date: Fri, 23 Jan 2009 13:24:23 GMT
<xsl:copy-of select="descendant::node()"/>

you (almost never)  want to do that: copying descendants has a
predicatable but "strange" effect on a document tree.

If it was
<h1>this <em> and <code>that</code></em>.</h1>
then you'll get

<h1>this <em> and <code>that</code> and<code>that</code> that.</h1>

which isn't usually (or ever) what you want, with exponential expansion,
the more deeply nested the input the more copies you get in the result.

This also looks strange:

<xsl:template match="element()|comment()|processing-instruction()" mode="group">
<xsl:copy-of select="current-group()"/>

don't you want the identity template here, otherwise you're never going
to apply templates to most nodes as faras I can see. copy-of stops the
apply-template processing.

something like

<xsl:template match="node(0" mode="group">
<xsl:copy-of select="@* except @the-attributes-you dont-want"/>
<xsl:apply-templates mode="group"/>


The Numerical Algorithms Group Ltd is a company registered in England
and Wales with company number 1249803. The registered office is:
Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United Kingdom.

This e-mail has been scanned for all viruses by Star. The service is
powered by MessageLabs. 

Current Thread