in PHP

用SimpleXML解析RSS Feed

今天需要用PHP来做解析RSS Feed的工作,用SimpleXML来完成的,因为RSS本来就是一种XML,只是规定了一些东西而已。

我要解析的东西比较简单,只是为了获得dict.cn上的每日口语一句的内容就可以了。

大概的代码就像这个样子

$feedUrl ='http://bbs.dict.cn/rss.php?fid=44&auth=0';
$rawFeed = file_get_contents($feedUrl);
$xml = new SimpleXmlElement($rawFeed);

$channel[‘title’] = $xml->channel->title;
$channel[‘link’] = $xml->channel->link;

$item=$xml->channel->item;

$message= (string) trim($item->description);

如果你需要获得title和url等信息,你可以使用一个数组来获得,同时一般的RSS 的<item>都有很多,这个也是,只是我只是需要第一个。你需要全部就可以用foreach去遍历就可以了。

另外需要注意的是,一些复杂的RSS还要涉及到命名空间,推荐一篇文章,写的比较清楚:

Using SimpleXML To Parse RSS Feeds