You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

XSLT条件判断报错求助:需优先获取QUALF=012的BELNR值

解决XSLT上下文缺失错误并实现指定逻辑

报错原因

你遇到的The context item for axis step xsl:document/element() is absent错误,本质是因为你的XSLT代码缺少完整结构(无模板匹配、无根样式声明),导致XPath表达式找不到正确的上下文节点,无法定位源XML中的元素。

修正方案

需要补全XSLT的完整结构,同时修正XPath细节(给字符串值加引号),确保逻辑正确执行。

完整修正后的XSLT代码

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <!-- 匹配源XML的根节点DATA -->
    <xsl:template match="/DATA">
        <DATA>
            <Target>
                <BELNR>
                    <xsl:choose>
                        <!-- 检查QUALF为"012"的E1EDK02节点下的BELNR是否存在且非空 -->
                        <xsl:when test="E1EDK02[QUALF='012']/BELNR != ''">
                            <xsl:value-of select="E1EDK02[QUALF='012']/BELNR"/>
                        </xsl:when>
                        <!-- 否则使用QUALF为"002"的BELNR值 -->
                        <xsl:otherwise>
                            <xsl:value-of select="E1EDK02[QUALF='002']/BELNR"/>
                        </xsl:otherwise>
                    </xsl:choose>
                </BELNR>
            </Target>
        </DATA>
    </xsl:template>
</xsl:stylesheet>

关键修复点

  • 补全XSLT基础结构:添加<xsl:stylesheet>根元素和匹配源XML根节点/DATA的模板,确保XPath有正确的上下文
  • 修正XPath字符串匹配:给QUALF的值加上单引号('012'、'002'),避免将字符串当成数字处理,匹配更准确
  • 增强空值判断:将判断条件改为E1EDK02[QUALF='012']/BELNR != '',同时覆盖“012节点存在但BELNR为空”和“没有012节点”两种情况

测试验证

场景1:源XML包含QUALF=012且BELNR非空(你提供的示例)

转换后输出与预期一致:

<?xml version="1.0" encoding="UTF-8"?>
<DATA>
    <Target>
        <BELNR>0090000020</BELNR>
    </Target>
</DATA>

场景2:QUALF=012的BELNR为空(或无012节点)

比如源XML修改为:

<?xml version="1.0" encoding="UTF-8"?>
<DATA>
    <E1EDK02>
        <QUALF>002</QUALF>
        <BELNR>0030000084</BELNR>
    </E1EDK02>
    <E1EDK02>
        <QUALF>012</QUALF>
        <BELNR></BELNR>
    </E1EDK02>
</DATA>

转换后输出:

<?xml version="1.0" encoding="UTF-8"?>
<DATA>
    <Target>
        <BELNR>0030000084</BELNR>
    </Target>
</DATA>

内容的提问来源于stack exchange,提问作者AnirD

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 18:10:02