【问题标题】:LPX-00209: PI names starting with XML are reserved when parsing soap responseLPX-00209:解析soap响应时保留以XML开头的PI名称
【发布时间】:2021-06-16 06:53:41
【问题描述】:

我解析了一个 SOAP 响应。接下来我想像这样检查<HasError> 的值:

DECLARE
l_clob CLOB;
l_error VARCHAR2(20);
BEGIN
--SOAP RESPONSE
l_clob :=
'
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <soap:Body>
      <GSFRR xmlns="http://tst.com/">
         <GSFRRe>
            <Error>Error on GSFRConnector.</Error>
            <HasError>true</HasError>
            <IsSuccess>false</IsSuccess>
         </GSFRRe>
      </GSFRR>
   </soap:Body>
</soap:Envelope>
';

--GET VALUE FOR HasError
SELECT HasError INTO l_error FROM xmltable(
    xmlnamespaces('http://www.w3.org/2003/05/soap-envelope' as "soap",default 'http://www.w3.org/2003/05/soap-envelope'),
    '/soap:Envelope/soap:Body/GSFRR/GSFRRe'
    passing xmlparse(document l_clob)
    columns haserror varchar2(20) path 'HasError');   
END;

但是,当我尝试此操作时,我收到以下错误:

ORA-31011: XML parsing failed
ORA-19202: Error occurred in XML processing
LPX-00209: PI names starting with XML are reserved

这是我第一次使用 SOAP。我无计可施。谁能指出我哪里出错了?

我使用 Oracle 19.2。

【问题讨论】:

    标签: xml oracle soap xml-parsing oracle19c


    【解决方案1】:

    改变

    '
    <?xml version="1.0" encoding="UTF-8"?>
    

    '<?xml version="1.0" encoding="UTF-8"?>
    

    因为在 XML 声明之前不能有任何字符,甚至是空格。

    另见Error: The processing instruction target matching "[xX][mM][lL]" is not allowed

    【讨论】:

      猜你喜欢
      • 2018-08-24
      • 2017-03-18
      • 2017-06-01
      • 2021-06-07
      • 2016-09-03
      • 1970-01-01
      • 1970-01-01
      • 2020-02-07
      • 1970-01-01
      相关资源
      最近更新 更多