doutao1282 2015-03-16 23:31
浏览 74
已采纳

使用html注释解析xml时出现Guzzle错误[关闭]

I'm getting this error from guzzle. the xml has a html comment in it which I think is breaking it. Any experience with this specifically in relation to guzzle because it is at the point that i try to get the response at xml where this error is through e.g. $res->xml(). $res alone or $res->getBody() don't seem to help me.

"Uncaught exception 'Exception' with message 'String could not be parsed as XML' in /home/mso/public_html/connector/vendor/guzzlehttp/guzzle/src/Message/Response.php:168 Stack trace: #0 /home/mso/public_html/connector/vendor/guzzlehttp/guzzle/src/Message/Response.php(168): SimpleXMLElement->__construct('Please use a mi...', 2048, false, '', false) #1 /home/mso/public_html/connector/get_dat.php(23): GuzzleHttp\Message\Response->xml() #2 {main} Next exception 'GuzzleHttp\Exception\XmlParseException' with message 'Unable to parse response body into XML: String could not be parsed as XML' in /home/mso/public_html/connector/vendor/guzzlehttp/guzzle/src/Message/Response.php:174 Stack trace: #0 /home/mso/public_html/connector/get_data.php(23): GuzzleHttp\Message\Response->xml() #1 {main} thrown in /home/mso/public_html/connector/vendor/guzzlehttp/guzzle/src/Message/Response.php on line 17

  • 写回答

1条回答 默认 最新

  • duanbangzhou7809 2015-03-17 00:56
    关注

    You can try to check your xml prior to load using:

    $oXmlUtilities = new cXmlUtilities();
    // Validate xml file by setting internal errors.
    libxml_use_internal_errors( true );
    try
    {
        $sTmpString = simplexml_load_string( $sContents );
    }
    catch( Exception $oException )
    {
        $sError = $oException->GetMessage();
    }
    
    // If xml validates and isn't empty call guzzle:
    if( empty( $sError ) && ( $sTmpString ) )
    {
        // XML is valid.
    

    Otherwise you may need to parse the string through a regex for html comments:

    <!--(.*?)-->
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容