0

私の入力xml:

  <Root>
     <Element>
         <Record att="a">value</Record>
         <Record att="b">value</Record>
           .
           .
          <Record att="g">value</Record>
          <Record att="h">value</Record>
            .
             .
          <Record att="p">value</Record>
            .
            .
          <Record att="t">value</Record>
              .
              .
          <Record att="w">value</Record>
               .
                .
          <Record att="z">value</Record>
     </Element>
     <Element>
         <Record att="a">value</Record>
         <Record att="b">value</Record>
           .
           .
          <Record att="g">value</Record>
          <Record att="h">value</Record>
            .
             .
          <Record att="p">value</Record>
            .
            .
          <Record att="t">value</Record>
              .
              .
          <Record att="w">value</Record>
               .
                .
          <Record att="z">value</Record>
     </Element>
     .
     .
     .
     .
     .
     .
   </Root>

私が試したデータウィーブ構成:

   %dw 1.0
   %input payload application/xml
   %output application/csv

  ---
  payload.root.*Element[0].*Record map {
    (id:$.@att) when ($.@att) == "g" or ($.@att) == "t", 
    (type:($.@att) when ($.@att) == "g" or ($.@att) == "t"
  }

o/pi が私の csv に入っています:

  id,type (headers)
  blanklines
  .
  .
  .
  g,g
  .
  .
  .
  .
  t,t
  .
  .

要件は明確です。Element[0] のレコードだけが必要です。私の o/p CSV には空白行があってはなりません。予想される出力は次のとおりです。

    id,type
    g,g
    t,t

ループのための dataweave の構文と概念をまだ理解できませんでした。私を助けてください。より良い解決策は受け入れられます。

4

3 に答える 3