Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 语法错误:X不能是';xsl:element';要素_Xml_Azure_Xslt_Biztalk_Edi - Fatal编程技术网

Xml 语法错误:X不能是';xsl:element';要素

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

我正在使用Azure集成工具(以前是BizTalk映射器)转换入站856。首先,我只是想得到一个工作映射,并从Jim Dawson在《BizTalk 2009》一书中的Pro Mapping中逐字复制了一个脚本,我使用了他的示例输入和输出。我遇到以下错误输出

“xsl:element”不能是“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元素中放置一个名称空间限定符,如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