联合地图测试输出包含标签

时间:2018-03-12 14:36:46

标签: xml xslt biztalk

我正在使用相同的源架构从两个不同的地图创建联合地图。

在联合地图中,我使用模板匹配设置逻辑,根据源模式中的子类型执行两个映射中的正确映射:

<xsl:template match="//Header[contains(InvoiceType,'Invoice')]">

这一切都运行良好,但是当我测试地图时,我会收到无效的XML。我的line元素似乎被创建了两次,一个在XML标记内正确,另一个在标记之外,在文档的末尾。

<E1EDP01>
            <POSEX>1</POSEX>
            <MENGE>2</MENGE>
            <E1EDP19>
                <QUALF>002</QUALF>
                <IDTNR>000000000000000000</IDTNR>
                <KTEXT>Paysafecard 100 DKR</KTEXT>
                <MFRPN/>
                <MFRNR/>
                <IDTNR_EXTERNAL>9120005810976</IDTNR_EXTERNAL>
            </E1EDP19>
            <E1EDP19>
                <QUALF>003</QUALF>
                <IDTNR>9120005810976</IDTNR>
                <KTEXT/>
                <MFRPN/>
                <MFRNR/>
                <IDTNR_EXTERNAL/>
            </E1EDP19>
        </E1EDP01>

0

        9120005810976
        9120005810976

      2
      EA
      Paysafecard 100 DKR


        100.00
        0
        0.00
        200.00
        0.00

我无法弄清楚为什么会发生这种情况,因为剩下的元素显示得很好。这在两个地图中都会发生。

要生成行输出,我使用的是xsl:for-each:

<xsl:for-each select="../Lines">
          <xsl:for-each select="Line">

Lines元素与Header元素处于同一级别。

任何可能导致这种情况的提示都将非常感激。

0 个答案:

没有答案