如何将多个重复节点串联成一个节点 - BizTalk
How to Concatenate multiple repetitive nodes into a single node - BizTalk
我在输入中有这样的东西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>
有人可以帮忙吗?
您可以在映射中使用 Value-Mapping Flattening functoid,然后将每个函数的结果提供给 Concatenate functoid 以生成结果字符串。该映射可以在端口上或编排中执行。
我假设您的输入实际上有一个 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>
那么你只需要一张这样的地图
使用字符串连接 functoid
Input[0] = text_type
Input[1] = :
Input[2] = text_content
Input[3] = #
进入累积串联
这会给你一个输出
<Order>
<Note>0012:Text1#ZT03:Text2#</Note>
</Order>
注意:末尾有一个额外的 #,但如果需要,您可以使用更多的 functoid 来 trim 关闭它。
我在输入中有这样的东西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>
有人可以帮忙吗?
您可以在映射中使用 Value-Mapping Flattening functoid,然后将每个函数的结果提供给 Concatenate functoid 以生成结果字符串。该映射可以在端口上或编排中执行。
我假设您的输入实际上有一个 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>
那么你只需要一张这样的地图
使用字符串连接 functoid
Input[0] = text_type
Input[1] = :
Input[2] = text_content
Input[3] = #
进入累积串联
这会给你一个输出
<Order>
<Note>0012:Text1#ZT03:Text2#</Note>
</Order>
注意:末尾有一个额外的 #,但如果需要,您可以使用更多的 functoid 来 trim 关闭它。