Ben Stover wrote:
Lets start with the following simplified piece of XSLT code :
<xsl:template match="/">
....
<moxx:someelement>
<xsl:value-of select="/moxx:aaa/moxx:bbb"/>
</moxx:someelement>
....
So when bbb is an optional element and it does NOT exist in the source XML then
the following
chunk is still created in the target XML doc:
<moxx:someelement></moxx:someelement>
How can I prevent the creation of these frame element tags when there is no
source element?
In pseudo code I need something like
<xsl:template match="/">
....
"if /moxx:aaa/moxx:bbb exists" then (
<moxx:someelement>
<xsl:value-of select="/moxx:aaa/moxx:bbb"/>
</moxx:someelement>)
....
How can I code this in XSLT ?
If you have
<xsl:template match="moxx:aaa/moxx:bbb">
<moxx:someelement>
<xsl:value-of select="."/>
</<moxx:someelement>>
</xsl:template>
and make sure that elements are processed (which for instance the
built-in templates will do) then you have achieved what you want.
Obviously the verbose way
<xsl:if test="/moxx:aaa/moxx:bbb">
<moxx:someelement>
<xsl:value-of select="/moxx:aaa/moxx:bbb"/>
</<moxx:someelement>
</xsl:if>
is also possible.
--
Martin Honnen
http://msmvps.com/blogs/martin_honnen/
--~------------------------------------------------------------------
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>
--~--