This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: How to delete empty element tag from output XML?
- To: "'xsl-list at mulberrytech dot com'" <xsl-list at mulberrytech dot com>
- Subject: RE: How to delete empty element tag from output XML?
- From: Kay Michael <Michael dot Kay at icl dot com>
- Date: Wed, 25 Oct 2000 10:31:32 +0100
- Reply-To: xsl-list at mulberrytech dot com
> 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