Reputation: 49
I need to pass BELNR value when the QUALF is "012" . If //E1EDK02/[QUALF=012]/BELNR is NULL then copy //E1EDK02/[QUALF=002]/BELNR
using following code but getting error as - The context item for axis step xsl:document/element() is absent
Source XML
<?xml version="1.0" encoding="UTF-8"?>
<DATA>
<E1EDK02>
<QUALF>002</QUALF>
<BELNR>0030000084</BELNR>
</E1EDK02>
<E1EDK02>
<QUALF>026</QUALF>
<BELNR>0080000000</BELNR>
</E1EDK02>
<E1EDK02>
<QUALF>012</QUALF>
<BELNR>0090000020</BELNR>
</E1EDK02>
</DATA>
Expected Output
<?xml version="1.0" encoding="UTF-8"?>
<DATA>
<Target>
<BELNR>0090000020</BELNR>
</Target>
</DATA>
XSLT using
<xsl:choose>
<xsl:when test="DATA/E1EDK02[QUALF=012]/BELNR">
<xsl:value-of select="DATA/E1EDK02[QUALF=012]/BELNR"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="DATA/E1EDK02[QUALF=002]/BELNR"/>
</xsl:otherwise>
</xsl:choose>
Upvotes: 0
Views: 38