如何在Mule4中生成动态XML响应?

如何在Mule4中生成动态XML响应?,mule,dataweave,Mule,Dataweave,在Mule4中,我需要将json示例数据转换为动态XML格式,我已经尝试了dataweave(2.0)字段映射,获得空值。有人能在这方面帮助我吗?如果问题只是要求从JSON输入构建XML输出,那么这是一个非常开放的问题。您希望动态评估什么?例如,您可以使用部分有效负载来设置DataWeave表达式中的值 这个问题有一个更困难的版本:如何动态评估构造到输入字符串中的DataWeave代码,该字符串可以从各种脚本文件中读取,甚至可以从一些输入数据(有效负载、属性或变量)在线构造 这是我们在的Mule

在Mule4中,我需要将
json
示例数据转换为动态
XML
格式,我已经尝试了
dataweave(2.0)
字段映射,获得空值。有人能在这方面帮助我吗?

如果问题只是要求从JSON输入构建XML输出,那么这是一个非常开放的问题。您希望动态评估什么?例如,您可以使用部分有效负载来设置DataWeave表达式中的值

这个问题有一个更困难的版本:如何动态评估构造到输入字符串中的DataWeave代码,该字符串可以从各种脚本文件中读取,甚至可以从一些输入数据(有效负载、属性或变量)在线构造

这是我们在的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代码的能力

有一个JSON到XML转换器。您尝试过吗?请包括您尝试过的内容和结果,以及您的输入和预期输出。显示脚本、输入和输出,以便我们了解问题。