【问题标题】:parsing xml document using cURL使用 cURL 解析 xml 文档
【发布时间】:2011-03-12 08:27:09
【问题描述】:

我正在尝试解析我在 php 文件中创建并使用输出的 xml 文档

echo $xmlMysql->saveXML();

我使用 cURL 发送信息,但是当我尝试使用以下代码解析它时。

 $xmlDoc = download_page($url);
  $dom = new DomDocument();
  $dom->load($xmlDoc);
  echo $dom->saveXML();

我收到此错误消息,

<b>Warning</b>:  I/O warning : failed to load external entity 
^

对此的任何帮助将不胜感激

【问题讨论】:

  • 你能做一个 var_dump($xmlDoc) 看看你得到了什么吗?
  • 我将错误消息缩短了,但它包含了我发送过来的 xml 文件的内容

标签: php xml curl


【解决方案1】:

试试下面的代码:

$dom = dom_import_simplexml(simplexml_load_string($response))->ownerDocument;
$dom->formatOutput = true;
echo '<PRE style="color:#000066;padding:10px;text-align:left">',htmlspecialchars($dom->saveXML()),'</PRE>';

【讨论】:

    【解决方案2】:

    如果 $xmlDoc 是您从 HTTP 请求中获取的 XML 字符串,请尝试使用 loadXML 方法,而不是仅使用 DomDocument 对象的 load 方法。

    【讨论】:

      【解决方案3】:

      你可以的

      $dom = new DomDocument()
      $dom->resolveExternals = false;
      //...
      

      防止外部实体被解析。当然,您可能想要调查哪些外部实体没有被读取。另见libxml_disable_entity_loader

      【讨论】:

        猜你喜欢
        • 2015-12-10
        • 2012-11-02
        • 2012-01-08
        • 1970-01-01
        • 1970-01-01
        • 2020-07-10
        • 1970-01-01
        • 2013-08-31
        • 2015-12-12
        相关资源
        最近更新 更多