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

PHP
PHP 执行系统外部命令 system() exec() passthru()
最新的php 文件上传模型,支持多文件上传
php 静态页面中显示动态内容
数据库查询记录php 多行多列显示
谈PHP生成静态页面分析 模板+缓存+写文件
PHP 各种排序算法实现代码
PHP nl2br函数 将换行字符转成 <br>
php 分页原理详解
Discuz 模板语句分析及知识技巧
php win下Socket方式发邮件类
怎样去阅读一份php源代码
建站常用13种PHP开源CMS比较
php xml留言板 xml存储数据的简单例子
PHP 开源AJAX框架14种
PHP 替换模板变量实现步骤
PHP has encountered an Access Violation at 7C94BD02解决方法
php 正则匹配函数体
php 文件夹删除、php清除缓存程序
php download.php实现代码 跳转到下载文件(response.redirect)
PHP类(Class)入门教程

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 156 ::
收藏到网摘: 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>
 <?
 }
 ?>