我正在使用 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,但它似乎没有捕捉到它。