我有以下xml作为我的输入
<Orders>
<Order>
<sample id="1"></sample>
<sample id="2"></sample>
.
.
.
.
</Order>
<Order>
<sample id="1"></sample>
<sample id="2"></sample>
.
.
.
.
</Order>
<Order>
<sample id="1"></sample>
<sample id="2"></sample>
.
.
.
.
</Order>
.
.
.
.
</Orders>
我需要将此xml发送到我的流程中的批次组件。我的批次应按以下方式接受每条记录
Record1:1st Order
Record2:2nd Order
Record3:3rd Order
.
.
.
.
现在请让我知道在 DataWeave(转换消息)组件中我需要做什么编码来实现这种情况。我尝试了多种方法但没有结果。我这几天尝试这个,累了。请帮帮我这方面!!请分享示例代码。
输出应如下所示:
1) Order ---- Object
sample-----Object
-sampleValue(i.e; value of 'sample' element)
-sampleidValue(i.e; value of attribute of 'sample')
sample-----Object
-sampleValue(i.e; value of 'sample' element)
-sampleidValue(i.e; value of attribute of 'sample')
.
.
.
.
2) Order ---- Object
sample-----Object
-sampleValue(i.e; value of 'sample' element)
-sampleidValue(i.e; value of attribute of 'sample')
sample-----Object
-sampleValue(i.e; value of 'sample' element)
-sampleidValue(i.e; value of attribute of 'sample')
.
.
.
.
我还有另一个dataweave组件,可以将此集合转换为csv。
此dataweave组件的输入是此集合中的每个对象。数据从此对象中提取并写入CSV文件。
我面临的问题是集合中的每个对象都是结构
Order ---- Object
sample1-----Object
-sampleValue(i.e; value of 'sample' element)
-sampleidValue(i.e; value of attribute of 'sample')
sample2-----Object
-sampleValue(i.e; value of 'sample' element)
-sampleidValue(i.e; value of attribute of 'sample')
.
.
.
.
但我的CSV输出应为:
sample1.sampleValue sample3.sampleValue . . . .(this is 'Order1' object)
sample2.sampleValue sample6.sampleValue . . . .(this is 'Order2' object)
.
.
.
.
我无法以这种方式在CSV文件中获得输出。 bcz我的样本&#39;也是一个对象列表。我也在 DataMapper和DataWeave 中尝试了这个。请帮我解释如何提取值。
答案 0 :(得分:0)
您好请找到以下数据编织
%dw 1.0
%output application/csv separator=" "
---
payload.Orders.*Order map {
SampleValue1:$.sample.@id,
SampleValue2:$.sample.@id,
SampleValue3:$.sample.@id
}
以下是X%dw 1.0
payload.Orders.*Order map {
SampleValue1:$.sample.@id,
SampleValue2:$.sample.@id,
SampleValue3:$.sample.@id
}
以下是我根据问题中共享的xml使用的xml。
<?xml version="1.0"?>
<Orders>
<Order>
<sample id="1">test</sample>
</Order>
<Order>
<sample id="1">test</sample>
</Order>
<Order>
<sample id="1">test</sample>
</Order>
</Orders>
希望这有帮助!