与BizTalk+;将多个节点转换为单个节点

与BizTalk+;将多个节点转换为单个节点,biztalk,Biztalk,我正在尝试使用以下xml进行映射: <rootxml> <documents> <document> <iddoc>1</iddoc> <total_price>1000</total_price> </document> </documents> <items> <item> <iddo

我正在尝试使用以下xml进行映射:

<rootxml>
  <documents>
    <document>
      <iddoc>1</iddoc>
      <total_price>1000</total_price>
    </document>
  </documents>
  <items>
    <item>
      <iddoc>1</iddoc>
      <iditem>1</iditem>
      <quantity>1</quantity>
      <price>800</price>
    </item>
    <item>
      <iddoc>1</iddoc>
      <iditem>2</iditem>
      <quantity>1</quantity>
      <price>200</price>
    </item>
  </items>
  <taxes>
    <tax>
      <iddoc>1</iddoc>
      <iditem>1</iditem>
      <idtax>1000</idtax>
      <value>123.90</value>
    <tax>
    <tax>
      <iddoc>1</iddoc>
      <iditem>2</iditem>
      <idtax>1000</idtax>
      <value>34.13</value>
    <tax>
  </taxes>
</rootxml>

1.
1000
1.
1.
1.
800
1.
2.
1.
200
1.
1.
1000
123.90
1.
2.
1000
34.13
对于这一点:

<resultxml>
  <documento>
    <iddoc>1</iddoc>
    <total_price>1000</total_price>
    <items>
      <item>
        <iddoc>1</iddoc>
        <iditem>1</iditem>
        <quantity>1</quantity>
        <price>800</price>
        <taxes>
          <idtax>1000</idtax>
          <value>123.90</value>
        </taxes>
      </item>
      <item>
        <iddoc>1</iddoc>
        <iditem>2</iditem>
        <quantity>1</quantity>
        <price>200</price>
        <taxes>
          <tax>
            <idtax>1000</idtax>
            <value>34.13</value>
          <tax>
        </taxes>
      </item>
    </items>
  </documento>
</resultxml>

1.
1000
1.
1.
1.
800
1000
123.90
1.
2.
1.
200
1000
34.13
我不知道怎么解决这个问题。虽然原始xml文档可以有多个文档,但它始终会有一个文档,因此我必须将项目合并到它中,并将税收合并到相应的项目中


谢谢

我认为您必须编写一大块自定义XSLT。循环遍历items/item,然后构建到taxes/tax的xpath[其中iditem=$itemId]。诀窍是将第一个itemId放入变量中

抱歉,我现在时间有限,无法为您创建完整的工作演示。 以下是我不久前遇到的相关问题:


Neal Walters

我认为您必须编写一大块自定义XSLT。循环遍历items/item,然后构建到taxes/tax的xpath[其中iditem=$itemId]。诀窍是将第一个itemId放入变量中

抱歉,我现在时间有限,无法为您创建完整的工作演示。 以下是我不久前遇到的相关问题:

尼尔·沃尔特斯