AnirD
AnirD

Reputation: 49

Issue with XSLT condition

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

Answers (0)

Related Questions