xsl-list
[Top] [All Lists]

Re: [xsl] How to remove (in addition) empty attributes?

2009-12-03 11:42:03
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>
--~--