首页 > 解决方案 > 为上下文项构建源时出错。org.xml.sax.SAXParseException;行号:1;列号:57;序言中不能有内容

问题描述

我正在尝试从响应中指定的 utf-16 编码返回的 invokeHTTP 方法解析 XML。我在下面尝试过,但我仍然无法克服这个错误

select request.* from  (EXEC model.invokeHttp(action => 'POST', endpoint => 'url' ,contentType => 'application/x-www-form-urlencoded;charset=utf-8',headers => jsonObject('application/x-www-form-urlencoded;charset=utf-8' as "Content-Type",'utf-8' as "Accept-Charset",jsonArray('gzip', 'deflate') as "Accept-Encoding",'bearer token' as "App-Authorization"),request => 'payload')) AS ws,
            XMLTABLE(XMLNAMESPACES(DEFAULT 'url'),'/path' PASSING XMLPARSE(DOCUMENT TO_CHARS(ws.result,'utf-8') WELLFORMED)  columns
            Name string PATH 'FirstName'
       ) AS request

我已经尝试在 VDB 中为翻译器指定编码,仍然相同

<translator name="rest" type="ws">
                <property name="DefaultBinding" value="HTTP"/>
                <property name="DefaultServiceMode" value="MESSAGE"/>
                <property name="encoding" value="UTF-16"/>
</translator>

回复:

<?xml version="1.0" encoding="UTF-16" standalone="yes"?>

标签: xmlteiid

解决方案


我通过在 http 标头中放入“接受”'text/xml;charset=utf-16'然后转换来解决它TO_CHARS(ws.result,'UTF-16')


推荐阅读