|
Subject: RE: [xsl] The identity transform and attributes From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Mon, 21 Jan 2008 11:03:06 -0000 |
I wouldn't expect any measurable performance difference, but if you feel it
adds clarity (or reusability) then go ahead. Perhaps even more logical would
be:
<xsl:template match="element()">
<xsl:copy>
<xsl:apply-templates select="@*,node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="attribute()|text()|comment()|processing-instruction()">
<xsl:copy/>
</xsl:template>
(The "," in place of "|" is a minor optimization that recent Saxon releases
do anyway - it avoids an unnecessary merge/deduplication of the sequence of
attributes with the sequence of children.)
Michael Kay
http://www.saxonica.com/
> -----Original Message-----
> From: Andrew Welch [mailto:andrew.j.welch@xxxxxxxxx]
> Sent: 21 January 2008 10:29
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] The identity transform and attributes
>
> I'm wondering if the default identity transform should be this:
>
> <xsl:template match="@*|node()">
> <xsl:copy>
> <xsl:apply-templates select="@*|node()"/>
> </xsl:copy>
> </xsl:template>
>
> Or this:
>
> <xsl:template match="node()">
> <xsl:copy>
> <xsl:apply-templates select="@*|node()"/>
> </xsl:copy>
> </xsl:template>
>
> <xsl:template match="@*">
> <xsl:copy/>
> </xsl:template>
>
> The former is nice and compact, but when the node is an
> attribute node does the apply-templates call have any effect
> - even if it's a few clock cycles wasted? It's a pointless
> instruction at that point. I guess it is too for non-element
> node()'s such as whitespace?
>
> Also, the shallow copy copies the entire attribute, so there
> is no opportunity to override the text() of the attribute.
> The only way is to add a separate matching template for the
> attribute - the latter perhaps makes this a little clearer.
>
> A useful distinction or a waste of time? :)
>
> cheers
> --
> Andrew Welch
> http://andrewjwelch.com
> Kernow: http://kernowforsaxon.sf.net/
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| [xsl] The identity transform and at, Andrew Welch | Thread | Re: [xsl] The identity transform an, Abel Braaksma |
| [xsl] The identity transform and at, Andrew Welch | Date | Re: [xsl] The identity transform an, Abel Braaksma |
| Month |