<xsl:template match="node()|@*">
<xsl:copy><xsl:apply-templates/></xsl:copy>
</xsl:template>
I can do it with an xsl:if inside, but is there anything more elegant than
this:
<xsl:template match="node()|@*">
<xsl:if test="not(self::processing-instruction() or self::comment()">
<xsl:copy><xsl:apply-templates/></xsl:copy>
</xsl:if>
</xsl:template>
change node() (which matches comments and pis) to * (which doesnt)
However more seriously, as you have it you are removing attributes:
<xsl:copy><xsl:apply-templates/></xsl:copy>
you need to explictly appy templates to attributes (as well as children)
<xsl:apply-templates select="*|@*"/>
or copy the attributes before applying templates
<xsl:copy><xsl:copy-of select="@*/><xsl:apply-templates/></xsl:copy>
David
________________________________________________________________________
This e-mail has been scanned for all viruses by Star Internet. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list