为什么在尝试创建simplexmlelement对象时会看到这个错误`String无法解析为XML`?

时间:2012-10-29 09:02:39

标签: php xml apache xml-parsing simplexml

我有类似下面的功能并收到错误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;
  ...

发生此错误的原因。

2 个答案:

答案 0 :(得分:1)

网址指向HTML文档。

文档既可以是HTML又可以是XML,但这不是。

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

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

您似乎期待RSS提要,并且该文档不像一个或参考文档。该网站看起来相当垃圾,可能是用于指向RSS源的URI,但该域现在已落入链接服务器垃圾邮件发送者。如果是这样,您应该找到您正在收集的信息的替代来源。

答案 1 :(得分:0)

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