Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MuleSoft-一对多xml文件输出_Xml_Oracle_Mule_One To Many_Mule Studio - Fatal编程技术网

MuleSoft-一对多xml文件输出

MuleSoft-一对多xml文件输出,xml,oracle,mule,one-to-many,mule-studio,Xml,Oracle,Mule,One To Many,Mule Studio,这里是MuleSoft的新手,使用他们的AnyPoint Studio IDE。开始了解如何将数据流和映射到来自不同输入的不同输出 不过,有一个挥之不去的问题我还是不太明白。如何基于某些数据库查询生成XML文件,从而使生成的XML文件正确地填充了一对一的数据元素,同时也填充了无限的数据元素 例如: 假设我们有一个客户拥有一对一的元素,比如客户ID和zipcode。但是他们有多张信用卡。通过SQL,您可以正确地加入,列出每一张信用卡的客户所有者 但是,我希望XML的输出如下所示: <cust

这里是MuleSoft的新手,使用他们的AnyPoint Studio IDE。开始了解如何将数据流和映射到来自不同输入的不同输出

不过,有一个挥之不去的问题我还是不太明白。如何基于某些数据库查询生成XML文件,从而使生成的XML文件正确地填充了一对一的数据元素,同时也填充了无限的数据元素

例如: 假设我们有一个客户拥有一对一的元素,比如客户ID和zipcode。但是他们有多张信用卡。通过SQL,您可以正确地加入,列出每一张信用卡的客户所有者

但是,我希望XML的输出如下所示:

<customer>
    <name>Bill</name>
    <custID>123456789</custID>
    <zipcode>99999</zipcode>
    <CreditCard>
        <creditType>Visa</creditType>
        <cardNumber>123456789</cardNumber>
    </CreditCard>
    <CreditCard>
        <creditType>AmericanExpress</creditType>
        <cardNumber>987665431</cardNumber>
    </CreditCard>
    <CreditCard>
        <creditType>MasterCard</creditType>
        <cardNumber>11111111111</cardNumber>
    </CreditCard>
</customer>

比尔
123456789
99999
签证
123456789
美国运通
987665431
万事达卡
11111111111
您必须为此使用多个查询吗?如中所示,对提取该单个客户的数据库运行某个查询,然后对提取该客户的所有卡信息的数据库运行第二个查询?从那里,以某种方式将数据“合并”到单个XML文件中

正在努力理解如何设置流并生成这样的xml文件。我试图避免的是客户数据的重复,如以下示例所示:

<customer>
    <name>Bill</name>
    <custID>123456789</custID>
    <zipcode>99999</zipcode>
    <CreditCard>
        <creditType>Visa</creditType>
        <cardNumber>123456789</cardNumber>
    </CreditCard>
</customer>

<customer>
    <name>Bill</name>
    <custID>123456789</custID>
    <zipcode>99999</zipcode>
    <CreditCard>
        <creditType> MasterCard </creditType>
        <cardNumber>11111111111</cardNumber>
    </CreditCard>
</customer>
<customer>
    <name>Bill</name>
    <custID>123456789</custID>
    <zipcode>99999</zipcode>
    <CreditCard>
        <creditType> AmericanExpress </creditType>
        <cardNumber>987665431</cardNumber>
    </CreditCard>
</customer>

比尔
123456789
99999
签证
123456789
比尔
123456789
99999
万事达卡
11111111111
比尔
123456789
99999
AmericanExpress
987665431

任何帮助都将不胜感激

您可以使用。我想您使用db连接器是为了获取返回地图的客户银行信息。使用自定义转换器,您可以接收此映射作为有效负载,根据需要构建xml,或者使用返回自定义对象(类似于xml结构)的包装器,然后在流中使用。。如果您想将XML合并到单个XML文件中,可以使用XSLT。。。Mule XSLT transformer将xml作为输入,并将生成最终的xml作为输出,将该数据合并到单个xml文件中


尝试使用Mule-XSLT-transformer:-

我想我要走这条路。我们将实现一个java组件,它将接收入站消息,通过一些其他查询将其提供,并将其转换为xml。非常感谢。