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

MuleSoft(DataWeave)读取XML文件设为Transform Message负载报错求助

解决思路

错误原因

你用Mule::p('file::src/test/resources/inbound.xml')读取到的是字符串格式的XML内容,直接指定output application/xml时,DataWeave会把这个字符串当作普通文本处理,而非合法的XML节点结构,导致输出的XML违反语法规则(比如把完整XML字符串放在根元素外的区域),触发报错。

可行解决方案

方案1:解析字符串为XML对象后输出(推荐)

使用DataWeave的read()函数,将读取到的XML字符串解析成XML节点,再输出为XML格式,保证输出的XML结构合法:

%dw 2.0
output application/xml
---
read(Mule::p('file::src/test/resources/inbound.xml'), "application/xml")

方案2:直接输出文本后再解析

如果不想在Transform Message里处理解析,可先输出纯文本,后续用Parse XML组件将文本转为XML对象:

%dw 2.0
output text/plain
---
Mule::p('file::src/test/resources/inbound.xml')

之后添加Parse XML组件,配置输入为该文本,即可得到XML格式的负载。

方案3:直接读取并解析文件(Mule 4.3+适用)

如果你的Mule版本是4.3及以上,可直接用file::read()函数读取文件并解析为XML对象,省去属性读取步骤:

%dw 2.0
output application/xml
---
file::read("src/test/resources/inbound.xml", "application/xml")

注意要确保文件路径正确,且应用拥有该文件的读取权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 04:57:12