【问题标题】:why this error `String could not be parsed as XML` is seen when tried to create a object of simplexmlelement?为什么在尝试创建 simplexmlelement 对象时会看到此错误“无法将字符串解析为 XML”?
【发布时间】:2012-10-29 09:02:38
【问题描述】:

我有一个类似下面的功能并收到错误String could not be parsed as XML

$category_feed_url = "http://www.news4u.com/blogs/category/articles/feed/";
$file = file_get_contents($category_feed_url);
$xml = new SimpleXMLElement($file);

foreach($xml->channel->item as $feed)
{
  echo $feed->link;
  echo $feed->title;
  ...

为什么会出现这个错误。

【问题讨论】:

  • 传递给 SimpleXMLElement 的字符串应该是格式良好的 xml。您的 URL 中的内容是纯 HTML。

标签: php xml apache xml-parsing simplexml


【解决方案1】:

URL 指向一个 HTML 文档。

一个文档可以同时是 HTML 和 XML,但这个不是。

它失败了,因为您试图解析非 XML,就好像它是 XML 一样。

有关使用 PHP 解析 HTML 的指导,请参阅 How to parse and process HTML with PHP?

不过,您似乎期待一个 RSS 提要,而该文档与某个文档或参考文档不同。该站点看起来相当垃圾,可能该 URI 曾经指向一个 RSS 提要,但该域现在已落入链接农场垃圾邮件发送者之手。如果是这样,您应该为您收集的信息找到其他来源。

【讨论】:

    【解决方案2】:

    “无法将字符串解析为 XML”,您的链接是 html 页面。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多