您当前位置:设计在线网 >> Php >> 浏览文章

RSS 2.0介绍

分享到:
本文章讲述了RSS 2.0介绍.

RSS 2.0介绍】

到目前为止,RSS2.0已经出现了一段时日了,并且在国内是普遍采用的标准。

RSS 2.0版引入了许多新的元素,诸如下面例子中的元素,和RSS 1.0一样支持模块化的扩展。

由于从RSS 2.0是从RSS 0.91中继承的,保持了它的简单性,同时拥有了与RSS 1.0类似的可扩展性,所以推荐RSS 2.0格式。

例24.10:RSS 2.0 feed内容

Sun, 24 Jun 2007 17:59:28 +0800

http://

RSS 2.0的用户名区域与RSS 1.0类似,但并未使用RDF(就像RDF 0.91并没有遵守在元素和代码中声明名字区域和内容)。

但是它可以灵活处理和转换0.91和1.0,如果你能够看懂RSS 2.0,那么0.9和1.0也只是小Case而已了。

下面我们开始了解解析RSS 2.0的方法。

我们使用SimpleXML的SimpleXMLElement可以取得指定的RSS节点,脚本如下。

channel->title . "\n";

echo $rss->channel->link . "\n";

echo $rss->channel->item[0]->title;

?>

还可以用foreach循环操作取得每个节点内容。

channel->item as $item){

echo $item->title . " link . ">\n";

}

?>

使用Xpath查找节点,只要知道文档有什么元素以及在什么位置,$rss->channel->item->title这样的表达式很方便。但是,不一定会知道得这么清楚。比方说,在 XHTML中,标题元素(h1、h2、h3等)可以是body、div、table或其他几种元素的子节点。此外,div、table、blockquote及其他元素又可以互相嵌套多次。在很多不那么明确的场合中,使用//item/title]这样的XPath表达式更方便。

SimpleXML通过xpath()函数支持这种功能,脚本如下。

xpath('//item/title');

foreach ($result as $title){

echo $title . "\n";

}

?>

通过使用新建smpleXML对象中的children()方法,我们可以遍历某个指定节点的子节点,然后用getName()方法来遍历某个给定节点的名字。

channel->children() as $child){

echo $child->getName() . "\n";

}

?>

同样道理,我们用arrributes方法取得或处理属性。

channel->item as $item){

foreach ($item->enclosure->attributes()as $key => $value){

echo "{$key} => {$value}\n";

}

}

?>

另一种方法如下,这样显示的属性更清楚些。

channel->item as $item){

echo "url => ".$item->enclosure['url']."\n";

echo "length => ".$item->enclosure['length']."\n";

echo "type => ".$item->enclosure['type']."\n\n";

}

?>

下面,我们给该RSS文件增加一个子节点,方法如下。

channel->addChild('item');

$item->addChild('title', 'My New Post');

$item->addChild('link',

'http://example.org/archives/my-new-post/');

$item->addChild('pubDate', date(DATE_RFC2822));

$item->addChild('description','This is what my post is about.');

?>

也可以同时增加一个新属性。

channel->addChild('item');

$item->addChild('title', 'My New Post');

$item->addChild('link', 'http://example.org/archives/my-new-post/');

$item->addChild('pubDate', date(DATE_RFC2822));

$item->addChild('description','This is what my post is about.');

$enclosure = $item->addChild('enclosure');

$enclosure->addAttribute('url',

'http://example.org/podcast3.mpg');

$enclosure->addAttribute('length', '');

$enclosure->addAttribute('type', 'audio/mpeg');

header('Content-type: text/xml');

echo $rss->asXML();

?>

 

推荐阅读:
php程序员成长之路  基础语法
基于PHP中Header函数远程脚本注入漏洞
详细介绍如何正确配置PHP开发环境

相关文章:

推荐文章  
赞助商链接  
热门排行  
主题推广  
中国设计在线网 All Rights Reserved. 互联网违法和不良信息举报
信息产业部备案号:湘ICP备09001063号