用php5的simplexml解析各种feed

时间:2010-01-11 08:16:11   来源:第二电脑网  作者:第二电脑网

  第二电脑网导读:个xml tree。从 PHP 5.1 版开始,SimpleXML 可以直接对带名称空间的文档使用 XPath 查询。和通常一样,XPath 位置路径必须使用名称空间前缀,即使搜索的文档使用默认名称空间也仍然如此。registerXPathNamespace() 函数把前缀和后续查询中使用的名称空间 URL 联系在一起。下面是使用xpath查询at...
  正文:

用simplexml处理atom数据

很多博客使用atom来输出数据,但是atom使用了名称空间(namespace),所以现在请求被命名的元素和本地名称时必须指定名称空间统一资源标识符(URI),还有一点就是simplexml的xpath方法无法直接query这个xml tree。

PHP 5.1 版开始,SimpleXML 可以直接对带名称空间的文档使用 XPath 查询。和通常一样,XPath 位置路径必须使用名称空间前缀,即使搜索的文档使用默认名称空间也仍然如此。registerXPathNamespace() 函数把前缀和后续查询中使用的名称空间 URL 联系在一起。

下面是使用xpath查询atom文档title元素的例子:

PLAIN TEXTCODE:
  1. $atom =  simplexml_load_file('http://www.ooso.net/index.php/feed/atom');
  2. $atom->registerXPathNamespace('atom','http://www.w3.org/2005/Atom');
  3. $titles = $atom->xpath('//atom:title');
  4. foreach($titles as $title)
  5.   echo"<h2>". $title ."</h2>";

用simplexml处理rss数据

wordpress可以输出rss2的数据源,这里面也有一些不同的namespace,比如dc。一个使用simplexml解析rss2的例子:

PLAIN TEXTPHP:
  1. $ns=array(
  2.        'content'=>'http://purl.org/rss/1.0/modules/content/',
  3.        'wfw'=>'http://wellformedweb.org/CommentAPI/',
  4.        'dc'=>'http://purl.org/dc/elements/1.1/'
  5. );
  6.  
  7. $articles=array();
  8.  
  9. // step 1: 获得feed
  10. $blogUrl='http://www.ooso.net/index.php/feed/rss2';
  11. $xml= simplexml_load_url($blogUrl);
  12.  
  13. // step 2: 获得channel metadata
  14. $channel=array();
  15. $channel['title']       =$xml->channel->title;
  16. $channel['link']        =$xml->channel->link;
  17. $channel['description']=$xml->channel->description;
  18. $channel['pubDate']     =$xml->pubDate;
    来源:http://www.002pc.com/master/College/Programming/PHP/11722.html

收藏到:

关于《用php5的simplexml解析各种feed》文章的评论

共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面

随机文章

    SQL Error: select * from ***_ecms_article where classid='86' and checked=1 order by rand() limit 10

顶出来的热门

    SQL Error: select * from ***_ecms_article where classid='86' and checked=1 order by diggtop desc,id desc limit 10
站内搜索: 高级搜索

热门搜索: Windows style 系统 tr IP QQ CPU 安装 function 注册 if td