You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mule 4中使用For Each拆分XML Payload失败,请求技术支持

问题解决:Mule For Each拆分XML节点失败

问题根源

你当前的DataWeave表达式错误添加了output application/xml,这会把本应返回的节点集合转换成XML格式输出,导致For Each无法识别为可迭代的集合对象。

修正后的For Each配置

将For Each的collection表达式修改为:

<foreach doc:name="For Each" doc:id="5d66e985-11c9-400b-855c-74f9247e7e50" collection="#[%dw 2.0
ns wd xxx.com
---
payload.*wd#Report_Entry]">
<logger level="DEBUG" doc:name="Logger" message="APGLPayload #[payload]" />
</foreach>

关键调整说明

  • 移除output application/xml:For Each需要接收可迭代的节点集合,而非XML格式的输出内容。DataWeave作为表达式使用时,默认返回原生数据结构(此处为节点集合),无需指定输出格式。
  • 简化路径:根据你的XML示例结构,payload本身就是<wd:Report_Data>节点,直接用payload.*wd#Report_Entry即可获取所有子节点集合。若payload是完整XML文档,可调整为payload.wd#Report_Data.*wd#Report_Entry。

数据库写入注意事项

拆分后每个迭代的payload是单个<wd:Report_Entry>XML节点,若要以XML格式写入数据库,可直接将节点转换为字符串(比如#[payload as String]),再传入数据库组件完成持久化。

内容的提问来源于stack exchange,提问作者hpandalai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 11:42:45