[Home] [By Thread] [By Date] [Recent Entries]
Hi,
At 07:11 PM 7/4/2007, was written: On Wed, Jul 04 2007 19:10:22 +0100, Shaun.McDonald@xxxxxxxxxxx wrote: > I came up with something that appears to work, only I'm not sure if > there is a caveat to doing it this way. > > Since I'm transforming almost 100 files, I want to make sure nothing > bites me in the rear. > > Using XSLT 2.0, Saxon 8.8 > > <xsl:template match="*"> > <xsl:copy> > <xsl:choose> > <xsl:when test="not(@change)"> > <xsl:copy-of select="@* "/> > </xsl:when> > <xsl:otherwise/> > </xsl:choose> > <xsl:apply-templates/> > </xsl:copy> > </xsl:template> > > I'm still spot-checking the files, but so far it seems to have removed > the @change attribute only, which is my desired output. I'm afraid this isn't going to work, on account of attribute elements not appearing on the self:: axis. (A small but significant wrinkle.) You might have to work around just a bit more: <xsl:template match="*">
<xsl:copy>
<xsl:apply-templates select="@*"/>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template><xsl:template match="@*"> <xsl:copy-of select="."/> </xsl:template> <xsl:template match="@change"/> When you apply templates to the attributes, only the @change attributes will match the empty template, and will hence be dropped. Other attributes will match the "next best" template matching attributes, which copies them. Cheers, Wendell
|

Cart



