0

以下のような入力xmlファイルがあり、LineErrorの複数のセグメントがあります

 <LineErrors>
    <LineError>
      <LineErrorType>CARGO REPORT SAC</LineErrorType>
      <LineErrorID>CARGO REPORT SAC</LineErrorID>
      <LineErrorDescription>N/A</LineErrorDescription>
    </LineError>
    <LineError>
      <LineErrorType>CONSOLIDATED STATUS</LineErrorType>
      <LineErrorID>CONSOLIDATED STATUS</LineErrorID>
      <LineErrorDescription>HELD</LineErrorDescription>
    </LineError>
</LineErrors>

現在、dataweaver で、値「Held」として LineErrorDescription フィールドを含む LineError セグメントがある場合、属性が固定値にマップされる別の xml ファイルを作成しています。たとえば、id = "x" if LineErrors.LineError.LineErrorDescription == "Held" の場合

だから私の質問は、データウィーバーでどのように反復して比較できるかです。手がかりがあれば共有してください。

4

2 に答える 2

3

フィルターとマップを一緒に使用できます。これを試してください-

%dw 1.0
%output application/xml
---
payload.LineErrors.*LineError filter ($.LineErrorDescription == 'HELD') map {
   id: 'X'
}
于 2016-03-08T16:30:59.613 に答える