just copy the identity transform from the xslt spec:
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
then add a template to zap empty attributes:
<xsl:template match="@*[.='']"/>
and a template to zap empty elements
<xsl:template match="*[not(node())]"/>
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
________________________________________________________________________