我正在使用Azure集成工具(以前是BizTalk映射器)来翻译入站856。首先,我只是想获取一个有效的地图,并从BizTalk 2009的Pro Mapping中逐字复制了脚本由Jim Dawson撰写,我正在使用他的示例输入和输出。我遇到以下错误输出
'xsl:elemment'不能是'xsl: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元素中放置一个名称空间限定符,但这会导致相同的错误。有人可以在这里提供语法帮助吗?
谢谢, 内森
答案 0 :(得分:2)
X不能是'xsl:element'元素的子元素
仔细查看X,看看将其作为xsl:element
的子代是否有意义。
将xsl:elemment
更改为xsl:element
。
答案 1 :(得分:1)
为什么不直接使用元素名称?
<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>