Deepak,
In case what you really want to do is output Y if and only if it has a Z
element node, the following transform will work:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/X">
<X>
<xsl:for-each select="A">
<A>
<xsl:value-of select="."/>
</A>
</xsl:for-each>
<xsl:for-each select="Y[Z]">
<Y>
<xsl:for-each select="Z">
<Z>
<xsl:value-of select="."/>
</Z>
</xsl:for-each>
</Y>
</xsl:for-each>
</X>
</xsl:template>
</xsl:stylesheet>
This key is to use the XPath selection of "Y[Z]" which means all Y which
have a Z element.
With the input XML of:
<X>
<A>A</A>
<Y></Y>
</X>
The output will be:
<X>
<A>A</A>
</X>
With the input XML of:
<X>
<A>A</A>
<Y>
<Z>B</Z>
</Y>
</X>
The output will be:
<X>
<A>A</A>
<Y>
<Z>B</Z>
</Y>
</X>
I hope this may help.
Steve
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list