Subject: [xsl] The identity transform and attributes From: "Andrew Welch" <andrew.j.welch@xxxxxxxxx> Date: Mon, 21 Jan 2008 10:28:42 +0000 |
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 -> |
---|---|---|
RE: [xsl] how to sort a list of xpa, Michael Kay | Thread | RE: [xsl] The identity transform an, Michael Kay |
Re: [xsl] xpath query, Sean Tiley | Date | RE: [xsl] The identity transform an, Michael Kay |
Month |