壹次网首页 | 工具源码首页 | 技术文章首页 | 文章分类 | | |

文章搜索: 分类 关键字
您的位置:首页网络编程PHP专区 → PHP5的Simplexml
PHP5的Simplexml
添加日期:2006-10-12 9:52:29     [ ]

php5新增了Simplexml extension,我们可以借助它来解析,修改XML。在IBM的知识库里找到一篇文章对此做了专门的介绍,而且比较详细,感兴趣的话可以看看最后的参考文档。

一个RSS Feed

下面是一个RSS的例子,我们准备用simplexml来解析它。

<?xml version="1.0" encoding="UTF-8"?>
<rss version="0.92">
<channel>
  <title>Mokka mit Schlag</title>
  <link>http://www.elharo.com/blog</link>
  <language>en</language>
  <item>
    <title>Penn Station: Gone but not Forgotten</title>
    <description>
     The old Penn Station in New York was torn down before I was born. 
     Looking at these pictures, that feels like a mistake.  The current site is 
     functional, but no more; really just some office towers and underground 
     corridors of no particular interest or beauty. The new Madison Square...
    </description>
    <link>http://www.elharo.com/blog/new-york/2006/07/31/penn-station</link>
  </item>
  <item>
    <title>Personal for Elliotte Harold</title>
    <description>Some people use very obnoxious spam filters that require you 
     to type some random string in your subject such as E37T to get through. 
     Needless to say neither I nor most other people bother to communicate with 
     these paranoids. They are grossly overreacting to the spam problem. 
     Personally I won’t ...</description>
 
    <link>http://www.elharo.com/blog/tech/2006/07/28/personal-for-elliotte-harold/</link>
  </item>
</channel>
</rss> 

解析XML

首先载入一个xml

$rss =  simplexml_load_file(’http://www.ooso.net/index.php/feed/’); 

这里使用的是simplexml_load_file函数,能够马上解析指定url的xml文件,因为是simplexml,所以simple。下面就可以象读取php数组一样来使用解析后xml的内容了,比如读取RSS的标题:

$title =  $rss->channel->title;
<title><?php echo $title; ?></title> 

或者是循环显示rss的各个ITEM节点

$rss->channel->item //这个是item 

foreach ($rss->channel->item as $item) {
  echo "<h2>" . $item->title . "</h2>";
  echo "<p>" . $item->description . "</p>";

一个简单但完整的RSS Reader

把上面的代码整合在一起,就是一个五脏俱全的麻雀牌RSS Reader了

<?php 
// 载入并解析XML
$rss =  simplexml_load_file(’http://partners.userland.com/nytRss/nytHomepage.xml’);
$title =  $rss->channel->title;
?>
<html xml:lang="en" lang="en">
<head>
  <title><?php echo $title; ?></title>
</head>
<body>
 
<h1><?php echo $title; ?></h1>
 
<?php
// 循环输出ITEM节点的说明
foreach ($rss->channel->item as $item) {
  echo "<h2><a href=’" . $item->link . "’>" . $item->title . "</a></h2>";
  echo "<p>" . $item->description . "</p>";
}
?>
 
</body>
</html> 

Simplexml,真的很simple,不信可以拿去和php的DOM function做下比较:)

参考

http://www-128.ibm.com/developerworks/xml/library/x-simplexml.html

出处:某人的栖息地 作者:volcano 点击:
 热点文章
·photoshop制作香烟、烟头、烟雾
·photoshop图片卷角、翻页效果的制作
·用U盘或移动硬盘装《深山红叶袖珍系统Win PE启动..
·photoshop经典恐怖片海报效果教程
·photoshop水晶球质感表现 - 关于光影的细节
·ghost.pif最新变种手动查杀,ARP欺骗挂马+KAV让..
·[css] table-layout:fixed 属性的解说,IE、Fire..
·photoshop制作3D立体小人和字体
·关于zend解密的程序
·自适应页面高度100%方法(表格直接100%高度没有效..
 推荐文章
·如何彻底删除一个不需要的系统服务
·模仿QQ和MSN消息提示的效果
·CC攻击的思路及防范方法
·广告联盟的一些评价
Powered by yici.net
CopyRight (C) 2006-2012 版权所有   [ 依次网 ];未经授权,任何人不得抄袭、仿冒本站
ICP备案:苏ICP备05011771号 证书下载 ICP证号:苏ICP证040301
仪征广目网络信息服务有限公司 版权所有