如何在m子中拆分XML?分离器? [英] How do you split XMLs in mule? splitter?

查看:74
本文介绍了如何在m子中拆分XML?分离器?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

对拆分XML有点陌生,您能帮我从一个输入创建多个XML吗?我需要使用分离器吗? XSLT?另外,我也可以在xml中输入消息ID吗?

Im a bit new to splitting XMLs, Can you help me create multiple XMLs from one input? do I need to use splitters? XSLT? also, can i plud in the message id in the xml as well?

输入

<?xml version="1.0"?>
<StockMovementDataRequest xmlns:p1="urn:ams.com.au:dynamo:3pl:am:SAP_AM_I_005:StockMovement" xmlns:a="http://www.edi.com.au/EnterpriseService">
    <Header>
        <From>Warehouse</From>
        <To>Location</To>
        <Unique_ID>idm1468201212</Unique_ID>
        <DateTimeStamp>2016-04-13T11:55:30.263+10:00</DateTimeStamp>
    </Header>
    <StockMovementData>
        <Serialised_Material>YES</Serialised_Material>
        <DateTime>2016-04-13T11:55:30.263+10:00</DateTime>
        <From_Location>30-80</From_Location>
        <To_Location>client</To_Location>
        <Material>7CAGL3G00</Material>
        <Serial>700030011</Serial>
        <Quantity>100</Quantity>
    </StockMovementData>
    <StockMovementData>
        <Serialised_Material>YES</Serialised_Material>
        <DateTime>2016-04-13T11:55:30.263+10:00</DateTime>
        <From_Location>30-80</From_Location>
        <To_Location>client</To_Location>
        <Material>7CAGL3G00</Material>
        <Serial>700029911</Serial>
        <Quantity>100</Quantity>
    </StockMovementData>
</StockMovementDataRequest>

输出

<?xml version="1.0"?>
<StockMovementDataRequest xmlns:p1="urn:ams.com.au:dynamo:3pl:am:SAP_AM_I_005:StockMovement"
    xmlns:a="http://www.edi.com.au/EnterpriseService/">
    <Header>
        <From>warehouse</From>
        <To>client</To>
        <Unique_ID>idm1467386212</Unique_ID>
        <DateTimeStamp>2016-04-13T11:55:30.263+10:00</DateTimeStamp>
    </Header>
    <StockMovementData>
        <Serialised_Material>YES</Serialised_Material>
        <DateTime>2016-04-13T11:55:30.263+10:00</DateTime>
        <From_Location>30-80</From_Location>
        <To_Location>client</To_Location>
        <Material>7CAGL3G00</Material>
        <Serial>700030011</Serial>
        <Quantity>100</Quantity>
    </StockMovementData>
</StockMovementDataRequest>

<?xml version="1.0"?>
<StockMovementDataRequest xmlns:p1="urn:ams.com.au:dynamo:3pl:am:SAP_AM_I_005:StockMovement"
    xmlns:a="http://www.edi.com.au/EnterpriseService/">
    <Header>
        <From>warehouse</From>
        <To>client</To>
        <Unique_ID>idm1467386212</Unique_ID>
        <DateTimeStamp>2016-04-13T11:55:30.263+10:00</DateTimeStamp>
    </Header>
    <StockMovementData>
        <Serialised_Material>YES</Serialised_Material>
        <DateTime>2016-04-13T11:55:30.263+10:00</DateTime>
        <From_Location>30-80</From_Location>
        <To_Location>client</To_Location>
        <Material>7CAGL3G00</Material>
        <Serial>700029911</Serial>
        <Quantity>100</Quantity>
    </StockMovementData>
</StockMovementDataRequest>

有什么想法吗?

推荐答案

使用Mule Splitter拆分xml

    <splitter expression="#[xpath3('//StockMovementDataRequest/StockMovementData',payload,'NODESET')]" doc:name="Splitter"/>        
    <mulexml:dom-to-xml-transformer doc:name="DOM to XML"/>

要在拆分器之后聚合有效负载,请使用aggregator

To aggregate the payload after splitter, use aggregator

<collection-aggregator doc:name="Collection Aggregator"/>

在此处查看更多文档 https://docs.mulesoft.com/mule -user-guide/v/3.7/splitter-flow-control-reference

See more documentation here https://docs.mulesoft.com/mule-user-guide/v/3.7/splitter-flow-control-reference

这篇关于如何在m子中拆分XML?分离器?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆