当前位置: 首页 > 图文教程 > 网络编程 > PHP > 使用技巧:如何用PHP来解析XML文档

PHP
php面向对象全攻略 (十五) 多态的应用
php面向对象全攻略 (十六) 对象的串行化
php面向对象全攻略 (十七) 自动加载类
PHP parse_url 一个好用的函数
PHP 字符串分割和比较
全世界最小的php网页木马一枚 附PHP木马的防范方法
PHP 日期加减的类,很不错
PHP 日期时间函数的高级应用技巧
PHP获取163、gmail、126等邮箱联系人地址【已测试2009.10.10】
Ha0k 0.3 PHP 网页木马修改版
PHP iconv 函数转gb2312的bug解决方法
关于页面优化和伪静态
使用zend studio for eclipse不能激活代码提示功能的解决办法
PHP 身份验证方面的函数
基于OpenCV的PHP图像人脸识别技术
用mysql触发器自动更新memcache的实现代码
php 数学运算验证码实现代码
PHP网站开发方案实例
PHP教程:挖掘细节提升网站性能
搜索引擎技术核心揭密(PHP)

使用技巧:如何用PHP来解析XML文档


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 111 ::
收藏到网摘: n/a

搞了一天还是这个好(pear,XML_parse, XML_RSS)

PHP PEAR就提供一个RSS解析类,方便从用户提供的RSS中,获得相应的信息。

    需求
   下载XML_RSS: http://pear.php.net/package/XML_RSS
   XML_Parser      http://pear.php.net/package/XML_Parser
   PEAR                  http://pear.php.net/package/PEAR

   具体路径之间的关系,稍微调试一下即可,我是把压缩包解压后,把里面的RSS.php,Parser.php,PEAR.php都放在同一目录下,然后把RSS.php里面的
require_once 'XML/Parser.php';
改成
require_once 'XML/Parser.php';
就可以使用了。

     RSS版本
    经简单的测试,我发现它对RSS上述的三个主要版本,都工作的很好,没有出现问题。说明它是至少支持RSS主要版本的(0.91,1.0,2.0)

    例子
    用XML_RSS来分析RSS是特别简单的。先包含进类文件:
    require "RSS.php";

    根据资源地址创建类实例:
   $url = "test.rss";
    $r =& new XML_RSS($url);

    当然这里的$url也可以是一个远程路径,这需要把php.ini里的allow_url_fopen设为On,因为它默认设置即为此,所以一般不用改。

     执行分析:
     $r->parse();  

  下面就可以得到各种信息了:
  $r->getStructure()    返回是一个数组,包含了RSS文件的所有结构信息。
  $r->getChannelInfo()  返回是一个数组,包含了RSS当前频道的概要信息,比如title,link,description等。
  $r->getItems()  返回一个二维数组,包含了RSS文件里的所有item信息,每组信息里都有title,link,description,date等等。
 $r->getImages()  返回一个二维数组,包含了RSS文件里的所有image信息,每组信息里都有title,link,url等。
 $r->getTextinputs() 返回一个二组数组,包含了RSS文件里的所有文件输入区域信息,每组信息里都有title,link,description,name等。

 如何根据一个地址打印内容列表

   <?php
  $url = "http://blog.wangyou.com/rss/index.php";
 $r =& new XML_RSS($url);
 $r->parse();
 $items = $r->getItems()

 foreach ($items as $k=>$item)
 {
//$item里面包含了 link:内容链接;title:内容标题;description:内容描述;pubdate:内容表布日期,视站点而定,不一定提供
 ?>
 <div style="width:500px"><a href="<?=$item["link"]?>" target="_blank"><?=$item["title"]?></a></div>
 <?
 }
 ?>