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

XSLT多扁平XML转树形XML:LEVEL6对象关联SIMPLEENTITY报错修复

修复XSLT中XTDE0410错误的方案

错误原因

XTDE0410错误的核心是违反了XSLT输出规则:元素的所有属性节点必须在子元素节点之前生成。你的代码里,apply-templates先处理了子元素节点(key('child', @OBJECTID, $doc2)/key('subobject', @OBJECTID, $doc3)的查询结果),之后才处理属性@*,导致属性被尝试添加到已有子元素的元素上,触发报错。

修复方案

方案1:拆分apply-templates为两步(推荐)

把原代码的一行拆成独立两步,先处理属性,再处理子元素节点,严格遵循输出顺序规则:

<xsl:apply-templates select="@*"/>
<xsl:apply-templates select="key('child', @OBJECTID, $doc2)/key('subobject', @OBJECTID, $doc3)"/>

方案2:调整select中的节点顺序

如果要保持代码简洁,直接在select参数中将属性节点放在最前面,确保处理顺序正确:

<xsl:apply-templates select="@*, key('child', @OBJECTID, $doc2)/key('subobject', @OBJECTID, $doc3)"/>

额外检查

排查其他处理元素的模板,确保所有模板都遵循“先输出属性,再输出子元素”的规则,避免同类错误重复出现。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 08:54:14