[英]How to generate dynamic XML Response in Mule4?
在 Mule4 中,我需要将json
示例数据转换为动态XML
格式,我尝试使用dataweave(2.0)
字段映射,获取空值。 有没有人可以帮我解决这个问题?
如果问题只是要求从 JSON 输入构建 XML 输出,那么这是一个非常开放的问题。 你想动态评估什么? 例如,您可以使用部分有效负载来设置 DataWeave 表达式中的值。
这个问题有一个更难的版本:如何动态评估构建到输入字符串中的 DataWeave 代码,该字符串可以从各种脚本文件中读取,甚至可以从一些输入数据(有效负载、属性或变量)中内嵌构建)。
这是我们在http://training.mulesoft.com 上的MuleSoft DataWeave 培训课程中涵盖的另一个示例。
您可以使用动态评估组件来动态评估构造的 DataWeave 表达式字符串。 下面是一个用动态值替换 uName 参数的示例。
此外,该表达式被配置为根据某些条件读取不同的脚本文件:
output application/json
---
do {
var choice = attributes.queryParams.script default "NO_SCRIPT"
---
if(choice == "NO_SCRIPT")
"output application/json --- {result: 'NO SCRIPT ENTERED'}"
else if(choice == "script1") vars.script1
else if (choice == "script2") vars.script2
else read(choice)
}
下面是两个示例脚本,它们替换 uName 的值并生成不同类型的输出(XML 与 JSON)。
这是脚本1:
output application/xml
---
root: { message: "order "
++ attributes.queryParams.orderid
++ " has been received from "
++ uName, items: payload.items}
这是脚本2:
output application/json
---
root: { message: "Order2 "
++ attributes.queryParams.orderid
++ " has been received from "
++ uName, items: payload.items}
请注意,此示例很危险。 它允许 Web 客户端将任何 DataWeave 代码注入到 Mule 流中,因此不应将这个示例复制到生产代码中,但它确实展示了运行传递到 Mule 应用程序的任何 DataWeave 代码的能力。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.