2

入力 XML:

 <Orders>
 <Order>
   <sample id="a">23435</sample>
   .
   .
   .
  <sample id="x">D123</sample>
     .
      .
  <sample id="y">5346</sample>
  <sample id="z"></sample>
  .
  .
  </Order>
 <Order>
   <sample id="a">23435</sample>
   .
   .
   .
  <sample id="x">D345</sample>
     .
      .
  <sample id="y">5346</sample>
  <sample id="z">D217</sample>
  .
  .
  </Order>
 <Order>
   <sample id="a">23435</sample>
   .
   .
   .
  <sample id="x">D1235</sample>
     .
      .
  <sample id="y">5346</sample>
  <sample id="z"></sample>
  .
  .
  </Order>

要件:

attribute='z' を持つ 'sample' 要素に値がない場合、属性 'x' を持つ 'sample' 要素を 'ProId' にマップする必要があります。それ以外の場合、値がある場合は、「ProFeed」マップに値を渡すべきではありません。(「注文」要素ごとに、1 つの「ProFeed」マップを作成する必要があります)

出力:

 [ProFeed={ProId="",Lang="eng",CatId="AU"},ProFeed={ProId="",Lang="eng",CatId="AU"},ProFeed={ProId="",Lang="eng",CatId="AU"}]

DataWeave 構成:

%input application/xml 
%output application/java
.(some configuration code)
.
.

DataWeave コンポーネントの設定を手伝ってください。

4

2 に答える 2

3

これを強化してみることができます:

ここに画像の説明を入力

ここでの唯一の問題は、それ以外の場合は $ であり、属性 "x" を持つサンプルの値を返すことができるはずです。when/otherwise をネストする方法がわかりません

于 2015-09-24T07:13:33.390 に答える