0

我有以下 xml 作为我的输入

输入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(Transform message)组件中进行哪些编码以实现这种情况。我尝试了多种方法但没有结果。我从过去几天开始尝试这个并且厌倦了。请在这方面帮助我!请分享示例代码。

输出应如下所示:

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')
            .
            .
            .
            .

内批次:

我确实有另一个将这个集合转换为 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 我的“样本”也是一个对象列表。我也在DataMapper 和 DataWeave中尝试过这个。请帮助我如何提取值。

4

1 回答 1

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

%输出应用程序/csv 分隔符=""

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>

希望这可以帮助!

于 2015-09-20T14:07:27.987 回答