【发布时间】:2012-05-10 20:49:33
【问题描述】:
我正在使用 DOM 加载一堆 rss 提要,有时会出现 404 而不是生成文件。问题是网络服务器发送了一个 html 404 页面来代替预期的 xml 文件,因此使用以下代码:
$rssDom = new DOMDocument();
$rssDom->load($url);
$channel = $rssDom->getElementsByTagName('channel');
$channel = $channel->item(0);
$items = $channel->getElementsByTagName('item');
我收到此警告:
Warning: DOMDocument::load() [domdocument.load]: Entity 'nbsp' not defined
随后出现此错误:
Fatal error: Call to a member function getElementsByTagName() on a non-object
通常,此代码可以正常工作,但在我收到 404 的情况下,它无法执行任何操作。我在 load 语句周围尝试了一个标准的 try-catch,但它似乎没有捕捉到它。
【问题讨论】:
-
如果“实体 nbsp; 未定义”,也许 404 返回了 XML(不是 HTML)源? (
 未在 XML 中定义。)