快速业务通道

PHP 中的 SimpleXML 处理

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-25
the RSS again ?></h1>

<?php
// Here we''ll put a loop to include each item''s 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.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号