Xml 语法错误:X不能是';xsl:element';要素
我正在使用Azure集成工具(以前是BizTalk映射器)转换入站856。首先,我只是想得到一个工作映射,并从Jim Dawson在《BizTalk 2009》一书中的Pro Mapping中逐字复制了一个脚本,我使用了他的示例输入和输出。我遇到以下错误输出 “xsl:element”不能是“xsl:element”元素的子元素。“ 以下是我的XSLT脚本:Xml 语法错误:X不能是';xsl:element';要素,xml,azure,xslt,biztalk,edi,Xml,Azure,Xslt,Biztalk,Edi,我正在使用Azure集成工具(以前是BizTalk映射器)转换入站856。首先,我只是想得到一个工作映射,并从Jim Dawson在《BizTalk 2009》一书中的Pro Mapping中逐字复制了一个脚本,我使用了他的示例输入和输出。我遇到以下错误输出 “xsl:element”不能是“xsl:element”元素的子元素。“ 以下是我的XSLT脚本: <xsl:variable name="RailRoadCar" select="concat(//s0:TD3/TD302,//s
<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元素中放置一个名称空间限定符,如so:,但这会导致相同的错误。有人能帮我理解一下语法吗
谢谢,
Nathan为什么不直接使用元素的名称
<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>
为什么不直接使用元素的名称
<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不能是“xsl:element”元素的子元素
仔细查看X,看看它是xsl:element
的子元素是否有意义
简短回答
将xsl:element
更改为xsl:element
长答案
X不能是“xsl:element”元素的子元素
仔细查看X,看看它是xsl:element
的子元素是否有意义
简短回答
将xsl:element
更改为xsl:element