The problem with this is that only elements OR attributes are stripped but not
both at the same time.
Assume the following XML source:
<ns11:elem1 myattr="">
<ns22:subelem2 />
<ns22:subelem3></ns22:subelem3>
</ns11:elem1>
Then applying the XSLT script below will result in
<ns11:elem1>
</ns11:elem1>
As you can see the ns11:elem1 persists.
It is handled only in the remove attribute template and does not match the
other remove-empty-element template.
So how can I iteratively/recursively re-apply the script/templates on the
result again?
XSLT script:
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output indent="yes"/>
<xsl:template match="@*[normalize-space(.)='']"/>
<xsl:template match="*[not(node())]"/>
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
On Wed, 2 Dec 2009 20:58:11 -0500, Syd Bauman wrote:
How about matching the empty attributes and not generating any
output?
<xsl:template match="@*[normalize-space(.)='']"/>
How can I delete empty attributes as well?
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail:
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--