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

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

<h>
<xsl:copy-of select="descendant::node()"/>
</h>

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()"/>
</xsl:template>

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>
<xsl:copy-of select="@* except @the-attributes-you dont-want"/>
<xsl:apply-templates mode="group"/>
</xsl:copy>
</xsl:template>

David

________________________________________________________________________
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