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

如何用DataWeave 2.0输出含多个子元素的XML?

DataWeave 2.0 生成包含多子元素的XML

先看一个基础的DataWeave生成XML的示例:

%dw 2.0
output application/xml

---
a:
b:
c: "content"

输出结果:

<?xml version='1.0' encoding='UTF-8'?>
<a>
  <b>
    <c>content</c>
  </b>
</a>

现在想要在<b>标签下同时包含<c>和<d>两个子元素,目标输出如下:

<?xml version='1.0' encoding='UTF-8'?>
<a>
  <b>
    <c>content</c>
    <d>dontent</d>
  </b>
</a>

之前尝试的代码会报错:

%dw 2.0
output application/xml

---
a:
b:
c: "content",
d: "dontent"

报错信息:

Invalid input ',', expected ???

去掉逗号直接加d:也无法正常运行,正确的做法是把<b>下的多个子元素用大括号包裹成一个对象,代码如下:

%dw 2.0
output application/xml

---
a: {
  b: {
    c: "content",
    d: "dontent"
  }
}

或者也可以写成换行缩进的形式,效果完全一致:

%dw 2.0
output application/xml

---
a:
  b: {
    c: "content",
    d: "dontent"
  }

运行后就能得到目标XML输出。

原理很直白:在DataWeave语法里,当需要一个父节点包含多个子节点时,必须把这些子节点定义为一个对象(用{}包裹),这样解析器才能识别它们属于同一个父节点下的子元素,而不是错误的语法结构。不需要转换JSON或其他格式,直接用原生DataWeave语法就能实现。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 01:45:30