首 页 网络编程
网页制作 图形图象 操作系统 冲浪宝典
软件教学 认证考试

网络安全 网络办公 行业资讯 评测对比
您当前位置:站长天空 -> 冲浪宝典-> 邮件工具
php 中的 simplexml 处理_php技巧
作者:网友供稿 点击:0
推荐
西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!可在线rar解压,自动数据恢复设置虚拟目录等.免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金
站内搜索
文章页数:[1] 

  了解和 PHP 版本 5 捆绑到一起的 SimpleXML 扩展,它使 PHP 页面能够以 PHP 友好的语法来查询、搜索、修改和重新发布 XML。

  PHP 版本 5 引入了 SimpleXML,一种用于读写 XML 的新的应用程序编程接口(API)。在 SimpleXML 中,下面的这样的表达式:

  $doc->rss->channel->item->title


  从文档中选择元素。只要熟悉文档的结构,很容易编写这种表达式。但是,如果不很清楚需要的元素出现在何处(比如 Docbook、HTML 和类似的叙述性文档中),SimpleXML 可以使用 XPath 表达式寻找这些元素。

  开始使用 SimpleXML

  假设需要一个 PHP 页面将 RSS 提要(feed)转化成 HTML。RSS 是一种简单的 XML 格式用于发布连锁内容。文档的根元素是 rss,它包括一个 channel 元素。channel 元素包含关于提要的元数据,如标题、语言和 URL。它还包含各种封装在 item 元素中的报道。每个 item 都有一个 link 元素,包括一个 URL,还有 title 或 description(通常两者都有),包含普通文本。不使用名称空间。RSS 的内容当然不止这些,不过对本文来说知道这些就足够了。清单 1 显示了一个典型的例子,它包含两个新闻项。

  清单 1. RSS 提要

<?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 wont ...</description>

    <link>http://www.elharo.com/blog/tech/2006/07/28/personal-for-elliotte-harold/</link>
  </item>
</channel>
</rss>
 

  我们来开发一个 PHP 页面将 RSS 提要格式化为 HTML。清单 2 显示了这个页面的基本结构。

  清单 2. PHP 代码的静态结构

<?php // Load and parse the XML document ?>
<html xml:lang="en" lang="en">
<head>
  <title><?php // The title will be read from the RSS ?></title>
</head>
<body>

<h1><?php // The title will be read from the RSS again ?></h1>

<?php
// Here well put a loop to include each items title and description
?>

</body>
</html>
 


  解析 XML 文档

  第一步是解析 XML 文档并保存到变量中。只需要一行代码,向 simplexml_load_file() 函数传递一个 URL 即可:

  $rss = simplexml_load_file(http://partners.userland.com/nytRss/nytHomepage.xml);


  对于这个例子,我已经从 Userland 的 New York Times 提要(在 http://partners.userland.com/nytRss/nytHomepage.xml)填充了页面。当然,也可使用其他 RSS 提要的任何 URL。

  要注意,虽然名称为 simplexml_load_file(),该函数实际上解析远程 HTTP URL 上的 XML 文档。但这并不是该函数唯一令人感到奇怪的地方。返回值(这里存储在 $rss 变量中)并没有指向整个文档,如果使用过其他 API 如文档对象模型(DOM)您可能会这样期望。相反,它指向文档的根元素。从 SimpleXML 不能访问文档序言和结语部分的内容。

  寻找提要标题

  整个提要的标题(不是提要中各报道的标题)位于 rss 根元素 channel 的 title 孩子中。很容易找到这个标题,就仿佛 XML 文档是类 rss 的一个对象的序列化形式,它的 channel 字段本身带有一个 title 字段。使用常规 PHP 对象引用语法,寻找标题的语句如下:

  $title = $rss->channel->title;


  找到之后可以将其添加到输出 HTML 中。这样做很简单,只要回显 $title 变量即可:

<title><?php echo $title; ?></title>


  这一行输出元素的字符串值而不是整个元素。就是说写入文本内容但不包括标签。

  甚至可以完全跳过中间变量 $title:

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


  因为该页面在多处重用这个值,我发现用一个含义明确的变量来存储会更方便。

……


文章整理:站长天空 网址:http://www.z6688.com/
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

文章页数:[1] 


放大字体显示 缩小字体显示 打印文章 推荐给朋友
热门文章
·25m的hotmail免费邮箱申请方法
·用C#下的Raw Socket编程实现网络封包监视-.NET教程,C#语言
·Java JDBC连接的一个例子-JSP教程,Java技巧及代码
·Java Swing入门基础-JSP教程,Java技巧及代码
·Java用户界面本地化实例探索-JSP教程,Java技巧及代码
·有数据绑定、排序、查找功能的ListView(一)-.NET教程,数据库应用
·有线电视3信号放大器特点及常见故障分析
·[ASP.NET]使用C#开发Socket通讯-.NET教程,C#语言
·Session 详解-ASP教程,ASP应用
·ASP.net 2005 Treeview 无限分类非地递归终极解决方案-.NET教程,Asp.Net开发
最新文章
·做google月入一万rmb提示交流_网赚技巧
·英文视频:google adsense技巧视频教程_网赚技巧
·专访51auto创始人:5句话融到4000多万_站长访谈
·站长访谈—sen:骨灰级站长的10年网络生涯_站长访谈
·站长访谈:天涯—曾经的hacker,现在的我_站长访谈
·个人网站如何才能成功?_站长心得
·网站如何获得成功?确定目标是关键_站长心得
·blog广告新创意:review me_站长心得
·利用dns技术解决internet南北互访_站长心得
·googleadsense常用技巧总结_google推广
相关主题
  • php 中的批处理_php技巧
  • PHP 中的一些经验积累-PHP教程,PHP技巧
  • PHP 中执行系统外部命令-PHP教程,PHP技巧
  • php 中的一些经验积累
  • 西部数码虚拟主机

    友情链接
    CNNIC 西部数码
    万网 自助建站
    虚拟主机 asp空间
    域名注册 域名
    域名申请 主页空间
    论坛空间 网站空间
    国际域名 虚拟空间
    空间租用 DDOS防火墙
    成都主机托管 四川主机托管
    主机租用 服务器租用
    网站目录 自助建站
    虚拟主机 网址大全
    软件下载
    自助链接
    虚拟主机资讯 特价虚拟主机
    版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
    关于我们:站长天空:专业提供最新的站长资讯、在线教程、虚拟主机权威评测、虚拟主机性能对比、网站制作教程,开发教程,站长工具。包括网页制作教程、冲浪宝典、编程参考、操作系统、软件教学、行业动态等。
    特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
    发表评论 打印  刷新     关闭