如何将多个重复节点连接为单个节点-BizTalk

问题描述 投票:0回答:2

我在输入XML中有类似的内容

  <OrderText>
    <text_type>0012</text_type>
    <text_content>Text1</text_content>
  </OrderText>
  <OrderText>
    <text_type>ZT03</text_type>
    <text_content>Text2</text_content>
  </OrderText>

以上数据在连接为以下架构后需要映射

<Order>
    <Note>0012:Text1#ZT03:Text2</Note>
</Order>

任何人都可以帮忙吗?

dictionary concatenation biztalk
2个回答
0
投票

您可以在地图中使用Value-Mapping Flattening函数,然后将每个函数的结果输入到串联函数中以生成结果字符串。该映射可以在端口或业务流程上执行。


0
投票

我将假设您的输入实际上有一个Root节点,否则它不是有效的XML。

<Root>
 <OrderText>
    <text_type>0012</text_type>
    <text_content>Text1</text_content>
  </OrderText>
  <OrderText>
    <text_type>ZT03</text_type>
    <text_content>Text2</text_content>
  </OrderText>
</Root>

然后您只需要一张这样的地图

Map Image

[使用字符串连接函数]

Input[0] = text_type
Input[1] = :
Input[2] = text_content
Input[3] = #

进入累积连接

这将为您提供输出

<Order>
  <Note>0012:Text1#ZT03:Text2#</Note> 
</Order>

注意:结尾处有一个额外的#,但是如果需要,您可以使用更多的仿函数来将其修剪掉。

© www.soinside.com 2019 - 2024. All rights reserved.