【发布时间】:2022-01-22 10:16:46
【问题描述】:
我正在尝试将 JSON 响应转换为 XML,然后使用有效负载调用 SOAP API。我设法毫无问题地获得 JSON 响应,但我无法将其转换为 XML。问题是数据必须是格式:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<NumberToDollars xmlns="http://www.dataaccess.com/webservicesserver/">
<dNum>47.92</dNum>
</NumberToDollars>
</soap:Body>
</soap:Envelope>
但是当我将此作为Transform Messages 模块的示例时,它会创建:
%dw 2.0
output application/xml
ns ns00 http://schemas.xmlsoap.org/soap/envelope/
ns ns01 http://www.dataaccess.com/webservicesserver/
---
{
ns00#Envelope: {
ns00#Body: {
ns01#NumberToDollars: {
ns01#dNum: payload.decimal
}
}
}
}
当我使用Logger 查看输出时:
<?xml version='1.0' encoding='UTF-8'?>
<ns00:Envelope xmlns:ns00="http://schemas.xmlsoap.org/soap/envelope/">
<ns00:Body>
<ns01:NumberToDollars xmlns:ns01="http://www.dataaccess.com/webservicesserver/">
<ns01:dNum>47.92</ns01:dNum>
</ns01:NumberToDollars>
</ns00:Body>
</ns00:Envelope>
我知道我可以手动更改它,我设法让它看起来像这样:
%dw 2.0
output application/xml
ns soap http://schemas.xmlsoap.org/soap/envelope/
ns ns01 http://www.dataaccess.com/webservicesserver/
---
{
soap#Envelope: {
soap#Body: {
NumberToDollars: {
dNum: payload.decimal
}
}
}
}
输出:
<?xml version='1.0' encoding='UTF-8'?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<NumberToDollars>
<dNum>47.92</dNum>
</NumberToDollars>
</soap:Body>
</soap:Envelope>
但我不知道如何在没有命名空间的情况下获取 NumberToDollarsbe 并同时拥有 xmlns 链接(我怎样才能摆脱 ns00 并同时保持链接)。
我在 Mule 文档中检查了所有关于它的内容,但没有发现任何问题,请帮忙。
【问题讨论】:
标签: mule dataweave mulesoft anypoint-studio