在mule中,采用mule自带的objectToXML组件生成的XML格式,顺序比较乱,不能生成自己定义的XML。在mule社区版中没有更好的工具来生成XML。
利用Groovy来生成XML,如下:
<flow name="depttodeptFlow3">
<http:listener config-ref="HTTP_Listener_Configuration" path="/X" doc:name="HTTP"/>
<db:select config-ref="Oracle_Configuration" doc:name="Database">
<db:parameterized-query><![CDATA[select Dept_Name deptName,dept_code from dept_dict]]></db:parameterized-query>
</db:select>
<scripting:component doc:name="Groovy">
<scripting:script engine="Groovy"><![CDATA[def writer = new StringWriter()
def xml = new groovy.xml.MarkupBuilder(writer)
xml.order(xmlns: 'urn:acme:order:3:1') {
payload.each { p ->
dept ('Code':p.Dept_Code,
'Name':p.DeptName,'AAA'
)
}
}
result = writer.toString()
]]></scripting:script>
</scripting:component>
</flow>
运行结果: