需要来自相同xml根节点的值列表

时间:2016-11-23 14:07:35

标签: java mule dataweave

我的情况是,我有来自dataweave

的text / xml数据
   <rootMessage>

  <message> 0123      1234          ahdhgahg  </message>

  <message> 0123      1234          ahdhgahg  </message>

  <message> 0123      1234          ahdhgahg  </message>

   </rootMessage>

dataweave mapping就像:

   rootMessage:{
        (payload.messanger map {
           message:$.Message
           }
         )
       }

我必须将所有这些消息数据存储在单个txt文件中。 文件结构将如下:

 0123      1234          ahdhgahg 
 0123      1234          ahdhgahg 
 0123      1234          ahdhgahg 

我该如何制作这种格式?

Plz提出了一些建议。谢谢

1 个答案:

答案 0 :(得分:0)

恕我直言,首先你必须优化你的DataWeave表达式,以确保反映输入数据结构。例如:该结构中没有payload.messanger

之后评估你的表达。确保设置输出:%output application/json,仅用于评估目的。从当前表达式中,您将获得具有重复字段的单个JSON对象。这是不正确的。

{
  "rootMessage": {
    "message": " 0123      1234          ahdhgahg  ",
    "message": " 0123      1234          ahdhgahg  ",
    "message": " 0123      1234          ahdhgahg  "
  }
}

因此,您的下一步是:优化您的表达。预期结果应该是JSON对象的列表。

[
  {
    "message": " 0123      1234          ahdhgahg  "
  },
  {
    "message": " 0123      1234          ahdhgahg  "
  },
  {
    "message": " 0123      1234          ahdhgahg  "
  }
]

最后,设置输出:%output application/csv header=false。然后你就会得到预期的结果。