我试图将WS SOAP-XML响应转换为JSON格式,但是我收到了以下错误:
error: ballerina.lang.errors:Error, message: failed to get xml payload: failed to parse xml: com.ctc.wstx.exc.WstxParsingException: Illegal processing instruction target ("xml"); xml (case insensitive) is reserved by the specs.
我认为这是因为响应始于:
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap....">
有没有办法删除第一行?然后我可以使用XmlToJSON。
由于
答案 0 :(得分:1)
我认为这与https://github.com/ballerinalang/ballerina/issues/3601
中的问题相同目前,如果不转换为XML,就无法删除第一行。但我认为那是你得到那个错误的地方。
但是,只有在将XML作为XML之前构建了有效负载之后,才会添加上述XML声明行(<?xml version="1.0"...>
)。在将有效负载作为XML之前,代码中是否有任何地方将响应转换为字符串(例如:via req.getStringPayload()
方法)?一种解决方法是消除它,或者首先将有效负载作为XML获取。
此问题将在即将发布的版本中修复。