Syntax error: X cannot be a child of the 'xsl:element' element
Syntax error: X cannot be a child of the 'xsl:element' element
我正在使用 Azure 集成工具(以前是 BizTalk 映射器)翻译入站 856。首先,我只是想获取一个工作映射,并从 BizTalk 中的 Pro Mapping 逐字复制脚本2009 年 Jim Dawson 的书,我正在使用他的示例输入和输出。我遇到以下错误输出
'xsl:elemment' cannot be a child of the 'xsl:element' element."
这是我的 XSLT 脚本:
<xsl:variable name="RailRoadCar" select="concat(//s0:TD3/TD302,//s0:TD3/TD303)"/>
<xsl:variable name="OrderNum" select="//s0:PRF/PRF01"/>
<xsl:for-each select="//s0:HLLoop1[s0:HL/HL03='I']/s0:MAN[not(MAN02=preceding::s0:MAN/MAN02)]">
<xsl:variable name="ItemID" select="MAN02"/>
<xsl:element name="s0:ItemLoop">
<xsl:element name="ItemID"><xsl:value-of select="$ItemID"/></xsl:element>
<xsl:element name="OrderNum"><xsl:value-of select="OrderNum"/></xsl:element>
<xsl:element name="RailRoadCar"><xsl:value-of select="RailRoadCar"/></xsl:element>
<xsl:for-each select="//s0:HLLoop1[s0:HL/HL03='I' and s0:MAN/MAN02=$ItemID]">
<xsl:variable name="HLPack" select="s0:HL/HL02"/>
<xsl:element name="PackLoop">
<xsl:elemment name="PackID">
<xsl:value-of select="//s0:HLLoop1[s0:HL/HL01=$HLPack and s0:HL/HL03='P']/s0:MAN/MAN02"/>
</xsl:elemment>
</xsl:element>
</xsl:for-each>
</xsl:element>
</xsl:for-each>
我也试过像这样在 PackLoop 元素中放置命名空间限定符: ,但这会导致同样的错误。有人可以帮助解决这里的语法问题吗?
谢谢,
内森
为什么不直接使用元素的名称?
<xsl:variable name="RailRoadCar" select="concat(//s0:TD3/TD302,//s0:TD3/TD303)"/>
<xsl:variable name="OrderNum" select="//s0:PRF/PRF01"/>
<xsl:for-each select="//s0:HLLoop1[s0:HL/HL03='I']/s0:MAN[not(MAN02=preceding::s0:MAN/MAN02)]">
<xsl:variable name="ItemID" select="MAN02"/>
<s0:ItemLoop>
<ItemID><xsl:value-of select="$ItemID"/></ItemID>
<OrderNum><xsl:value-of select="OrderNum"/></OrderNum>
<RailRoadCar><xsl:value-of select="RailRoadCar"/></RailRoadCar>
<xsl:for-each select="//s0:HLLoop1[s0:HL/HL03='I' and s0:MAN/MAN02=$ItemID]">
<xsl:variable name="HLPack" select="s0:HL/HL02"/>
<PackLoop>
<PackID>
<xsl:value-of select="//s0:HLLoop1[s0:HL/HL01=$HLPack and s0:HL/HL03='P']/s0:MAN/MAN02"/>
</PackID>
</PackLoop>
</xsl:for-each>
</s0:ItemLoop>
</xsl:for-each>
长答案
X cannot be a child of the 'xsl:element' element
仔细查看 X,看看它作为 xsl:element
的子项是否有意义。
简答
将 xsl:elemment
更改为 xsl:element
。
我正在使用 Azure 集成工具(以前是 BizTalk 映射器)翻译入站 856。首先,我只是想获取一个工作映射,并从 BizTalk 中的 Pro Mapping 逐字复制脚本2009 年 Jim Dawson 的书,我正在使用他的示例输入和输出。我遇到以下错误输出
'xsl:elemment' cannot be a child of the 'xsl:element' element."
这是我的 XSLT 脚本:
<xsl:variable name="RailRoadCar" select="concat(//s0:TD3/TD302,//s0:TD3/TD303)"/>
<xsl:variable name="OrderNum" select="//s0:PRF/PRF01"/>
<xsl:for-each select="//s0:HLLoop1[s0:HL/HL03='I']/s0:MAN[not(MAN02=preceding::s0:MAN/MAN02)]">
<xsl:variable name="ItemID" select="MAN02"/>
<xsl:element name="s0:ItemLoop">
<xsl:element name="ItemID"><xsl:value-of select="$ItemID"/></xsl:element>
<xsl:element name="OrderNum"><xsl:value-of select="OrderNum"/></xsl:element>
<xsl:element name="RailRoadCar"><xsl:value-of select="RailRoadCar"/></xsl:element>
<xsl:for-each select="//s0:HLLoop1[s0:HL/HL03='I' and s0:MAN/MAN02=$ItemID]">
<xsl:variable name="HLPack" select="s0:HL/HL02"/>
<xsl:element name="PackLoop">
<xsl:elemment name="PackID">
<xsl:value-of select="//s0:HLLoop1[s0:HL/HL01=$HLPack and s0:HL/HL03='P']/s0:MAN/MAN02"/>
</xsl:elemment>
</xsl:element>
</xsl:for-each>
</xsl:element>
</xsl:for-each>
我也试过像这样在 PackLoop 元素中放置命名空间限定符: ,但这会导致同样的错误。有人可以帮助解决这里的语法问题吗?
谢谢, 内森
为什么不直接使用元素的名称?
<xsl:variable name="RailRoadCar" select="concat(//s0:TD3/TD302,//s0:TD3/TD303)"/>
<xsl:variable name="OrderNum" select="//s0:PRF/PRF01"/>
<xsl:for-each select="//s0:HLLoop1[s0:HL/HL03='I']/s0:MAN[not(MAN02=preceding::s0:MAN/MAN02)]">
<xsl:variable name="ItemID" select="MAN02"/>
<s0:ItemLoop>
<ItemID><xsl:value-of select="$ItemID"/></ItemID>
<OrderNum><xsl:value-of select="OrderNum"/></OrderNum>
<RailRoadCar><xsl:value-of select="RailRoadCar"/></RailRoadCar>
<xsl:for-each select="//s0:HLLoop1[s0:HL/HL03='I' and s0:MAN/MAN02=$ItemID]">
<xsl:variable name="HLPack" select="s0:HL/HL02"/>
<PackLoop>
<PackID>
<xsl:value-of select="//s0:HLLoop1[s0:HL/HL01=$HLPack and s0:HL/HL03='P']/s0:MAN/MAN02"/>
</PackID>
</PackLoop>
</xsl:for-each>
</s0:ItemLoop>
</xsl:for-each>
长答案
X cannot be a child of the 'xsl:element' element
仔细查看 X,看看它作为 xsl:element
的子项是否有意义。
简答
将 xsl:elemment
更改为 xsl:element
。