RE: How to delete empty element tag from output XML?

Subject: RE: How to delete empty element tag from output XML?
From: Kay Michael <Michael.Kay@xxxxxxx>
Date: Wed, 25 Oct 2000 10:31:32 +0100
> I use XSLT to convert XML to XML and HTML. I need to delete 
> the tag when
> there are no value in the output. for example, I have XSLT as 
> following:
> 	<NAME><xsl:value-of select="N1" /></NAME>
> I don't need <NAME /> or <NAME> </NAME>.
> One way I can do it is use <xsl:if> outside of <Name> tag, 
> but that's too
> much for me because I have a lot of similar tags.

Try 
<xsl:template match="*" mode="copy-unless-empty">
 <xsl:if test="node()">
  <xsl:copy>
   <xsl:copy-of select="@*"/>
   <xsl:value-of select="."/>
  </xsl:copy>
 </xsl:if>
</xsl:template>

and then use <xsl:apply-templates mode="copy-unless-empty"/>
to process these elements.

> 
> Another related question is that some time I need put a 
> default value if nothing there.

A similar technique should do the trick.

Mike Kay 


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread