我正在编写一个 RSS 类型的阅读器网页来解析来自一些游戏网站的信息。
其中一款游戏的 RSS 提要写得不好。
他们没有费心将描述包装到 CDATA 中,并且使用 simplexml_load_file 解析时会出错。
这是我为解析它而编写的函数:
function displayAll($url) {
$url = "https://www.game.com/newsfeed/rss.vm";
$game = simplexml_load_file($url);
$item = $game->rss->channel->item;
foreach ($item as $items) {
echo '<li>';
echo ''.$items->title.'';
echo ''.$items->description.'';
echo ''.$items->link.'';
echo '</li>';
}
}
我收到以下错误:
Warning: simplexml_load_file() [function.simplexml-load-file]: https://www.game.com/newsfeed/rss.xml:15: parser error :
Entity 'nbsp' not defined in /results.php on line 27
Warning: simplexml_load_file() [function.simplexml-load-file]: https://www.game.com/newsfeed/rss.xml:20: parser error :
Entity 'nbsp' not defined in /results.php on line 27
获得多个相同的错误都围绕在提要中写得很糟糕的html。
我在问如何解决这个问题,有没有办法在解析之前将 html 转换回 xml 描述中的字母/空格/等标签?
任何建议,将不胜感激。