2016-06-21 21 views
0

私はdataweaveを使用してcsvファイルをxmlファイルに変換しています。いくつかの場所では、特定のxmlタグの値がなく、空のタグを取得しています。Dataweave Mulesoft XMLタグをスキップ

xmlにタグが存在してはいけません。

それはロングマッピングなので、そうでない場合はタグのマッピング全体を書くのではなく、そうでない場合のそのタグのマッピングだけを書きたいと思います。

データマッピング

name: ((payload01.name) when payload01.name != "" 
    otherwise {}), 

出力: 名の値が入力であった場合

<name>Kittu</name> 

そうでない場合

<name/> 

私がしたいことはありません、そのそれ以外の状態でありますタグはまったく必要です。

すべてのご協力をいただきありがとうございます。ありがとう。

答えて

0

「名前:」のように、括弧内にある必要があります:あなたはすべての要素のためにそれを宣言する必要はありませんように

(name: (payload01.name) when payload01.name != "" 
     otherwise {}) 
0

使用skipNullOn =「どこでも」出力宣言に。

%output application/xml skipNullOn="everywhere" 

参考:あなたが存在すると空のタグが必要な場合はhttps://docs.mulesoft.com/mule-user-guide/v/3.7/dataweave-reference-documentation#output-directive

、その後、我々はそうでない場合は、以下のようにするときに使用する必要があります。それを行うの

name: payload01.name when ((payload01.name != null) and (payload01.name != "")) otherwise "", 

他の方法が指定され最も単純な「デフォルト」値:

name: payload01.name default "", 
0

Victor Pと合意すると、「名前:」sh括弧の中に入れてください。ただし、同じ結果を得るには次のスニペットを使用できます。 なし

(name: payload01.name) when payload01.name != "" 

が、そうでない場合 payload01.nameが空でない場合、それは、名前を構築します。

0

すべての要素に対して宣言する必要がないように、出力宣言でskipNullOn = "attributes"を使用します。

%出力アプリケーションは、/ xmlのskipNullOn =ラバにこのべき、より適切な空のタブを追加するための

0

を「属性」。 名前:payload.name default {}

これは、名前に値がない場合、 を生成します。

0

skipNullOnは、要素または属性が存在するかどうかをチェックします。例: name要素が入力に存在しない場合、出力には表示されません。値が空の場合、あなたはこのように条件を使用する必要があります確認するには

: (名前:payload01.name)!payload01.name =「」

0

をごskipNullOn =使用している場合は、「どこでも」タグを出力フィールドに値がないのにそこに存在します。したがって、この場合は動作しません。 ヌル値をチェックし、そのタグ全体でスキップするための別個の関数を記述してください。

関連する問題