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
|