【发布时间】:2018-12-28 01:12:45
【问题描述】:
Ballerina 0.990 中删除了对字符串到 XML 的转换支持。 0.990及以上有没有安全的方法将xml字符串转换为xml类型?
在 Ballerina 版本 0.990 之前,可以通过以下方式将 XML 字符串转换为 xml 类型:
string myXMLStream = "<root><foo/></root>";
xml myXML = <xml>myXMLStream;
对于版本 0.990(和 0.990.1),这会导致错误:
'string' 不能显式输入为'xml'
虽然我在 0.990.1 中使用了以下内容:
string myXMLStream = "<root><foo/></root>";
xml myXML = <xml>`{{myXMLStream}}`;
如果没有编译时错误,myXML 的结果内容无法作为 XMLPayloads 成功发布到端点:
http:Request reqProcessXML = new;
reqProcessXML.setXMLPayload(untaint myXML);
var respProcessXML = myEndpoint->post("/myResource",reqProcessXML);
这会导致错误:
{ballerina/http}HTTPError {message:"无法将 outboundRequestMsg 发送到后端"}
如果 XML 内容是显式创建的:
xml myXML = <xml>`<root><foo/></root>`;
其余的下游处理成功。
请提供有关使用当前版本的 Ballerina 将字符串转换为 XML 的最佳/安全做法的指导。
【问题讨论】:
标签: ballerina