PHP 和 XML: 使用expat函数(一)


Posted in PHP onOctober 09, 2006

PHP 和 XML: 使用expat函数(一)

可扩展标识语言(Extensible Markup Language )明显是大多数开发人员将想要将其加入到他们的工具箱中的东西。XML是一种W3C的标准,它是开放的,语言中性的,API中性的,流式的,文本的,人类可读 的, 并且是一种将结构化数据带到web上的一种方法。XML是SGML的一个子集,它本身并不是一种标识 语言,但是 它允许作者来定义他们自已的标识语言,以便同分级数据保持更好的一致性。

现在,用PHP 分析XML文档已经不是一个象我以前在web和其它地方所看到的被覆盖得很深的专题了。 在 PHP手册中已经提供了一些对XML分析函数非常有用的信息,但是这个看上去好象就是我所能找到的 全部的信 息了。其它的语言看上去比PHP已经有了更多的关于XML的信息和工作实例,所以在这篇文章 中,我将试图为 改变这种情况作出我的一部分努力。

我将带领读者体验一个相当简单的XML的应用,那个应用是为我的网站所做的新闻系统的实现。我确实在 我的网站使用了这个应用,现在它工作的很好。如果你喜欢你可以自由地使用它。好了,让我们开始吧!

为了在PHP中使XML分析函数有效,你需要一个支持XML 的模块在你的web服务器上。这就意味着你将可能 不得不重新编译你的模块,以便可以支持XML,请参考这里来查看如何做到的更多的信息。XML 分析函数现在 真正地包含在一种SAX分析器expat中,它提供了 关于XML的简单的函数。另一种分析器是DOM分析器,它更容 易使用,关于它的一个例子就是微软的MSXML分析器组件,它可以让程序员通过操纵一种树状样式的对象来处 理结点和元素。expat分析器(或任意的SAX 分析器)允许你分析一个XML文档的实现方法是在对XML文档进行分 析的时候对不同的标记类型指定回调函数来完成的。当分析器开始分析你的XML文档并且遇上了一个标记,它 将调用你的函数,并且在继续往下 执行之前由你的函数对特定的标记进行处理。你可以把它看作是一种事件 驱动的方法。

让我们看一个使用'Newsboy'类来分析的XML文档

--------------------------------------------------------------------------------
mynews.xml

03/31/2000
Sooo Busy !

I haven't posted anything here for a while now as I have been busy with work(have to pay those
bills!).
I have just finished a neat little script that stores a complete record set in a session
variable after
doing an SQL query. The neat part is that an XML doc is stored in the session variable
an when paging
through the results (often near 1000!) the script displays 50 results at a time from the
XML doc in the
session variable instead of doing another query against the database. It takes a BIG load
off of the
database server.

03/25/2000
NewsBoy Class

Converted Newsboy to a PHP class to allow better abstraction (as far as PHP allows.)

Guess that means this is version 0.02 ?!
Newsboy will have a section of it's own soon on how to use and customize the class.

03/24/2000
NewsBoy is up!

I have just finished NewsBoy v0.01 !!!
It looks quite promising. You may ask, ""What the heck is it?!".

Well it's a simple news system for web-sites, written in PHP, that makes use of XML
for
the news data format allowing easy updating and portability between platforms.
It uses the built in expat parser for Apache.
This is just the very first version and there will be loads of improvements as the
project progresses.

03/24/2000
Romeo must Die

Saw a really cool movie today at Mann called 'Romeo must Die'
Nice fight scenes for a typical kung-fu movie with some 'Matrix' style effects.

One particular cool effect was the 'X-Ray Vision' effect that occured in various
fight scenes.
The hero, played by Jet Li, strikes a bad guy and you can see the bone in his arm
crack, in X-RAY vision.
There were some funny scenes too when Jet has to play American football with the
bad guys.
The official website for the movie is <A HREF='http://www.romeo-must-die.com'
> here </A>

<IMG SRC="http://a1996.g.akamaitech.net/7/1996/25/e586077a88e7a4/
romeomustdie.net/images/image15.jpg" WIDTH=300 >

PHP 相关文章推荐
PHP用户指南-cookies部分
Oct 09 PHP
PHP-MySQL教程归纳总结
Jun 07 PHP
php magic_quotes_gpc的一点认识与分析
Aug 18 PHP
PHP 采集程序中常用的函数
Dec 09 PHP
PHP无敌近乎加密方式!
Jul 17 PHP
PHP字符串函数系列之nl2br(),在字符串中的每个新行 (\n) 之前插入 HTML 换行符br
Nov 10 PHP
利用PHP生成静态HTML文档的原理
Oct 29 PHP
ubuntu12.04使用c编写php扩展模块教程分享
Dec 25 PHP
10个超级有用值得收藏的PHP代码片段
Jan 22 PHP
smarty内置函数foreach用法实例
Jan 22 PHP
php有效防止同一用户多次登录
Nov 19 PHP
PHP内存缓存功能memcached示例
Oct 19 PHP
用PHP动态生成虚拟现实VRML网页
Oct 09 #PHP
其他功能
Oct 09 #PHP
PHP新手上路(十一)
Oct 09 #PHP
PHP新手上路(十二)
Oct 09 #PHP
PHP新手上路(十三)
Oct 09 #PHP
PHP新手上路(十四)
Oct 09 #PHP
PHP简介
Oct 09 #PHP
You might like
经典的PHPer为什么被认为是草根?
2007/04/02 PHP
PHP strtotime函数详解
2009/12/18 PHP
调整优化您的LAMP应用程序的5种简单方法
2011/06/26 PHP
php中$美元符号与Zen Coding冲突问题解决方法分享
2014/05/28 PHP
php开启与关闭错误提示适用于没有修改php.ini的权限
2014/10/16 PHP
php链表用法实例分析
2015/07/09 PHP
php操作xml并将其插入数据库的实现方法
2016/09/08 PHP
PHP自定义函数判断是否为Get、Post及Ajax提交的方法
2017/07/27 PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
2019/11/25 PHP
google地图的路线实现代码
2009/08/20 Javascript
QUnit jQuery的TDD框架
2010/11/04 Javascript
到处都是jQuery选择器的年代 不了解它们的性能,行吗
2012/06/18 Javascript
JavaScript 匿名函数和闭包介绍
2015/04/13 Javascript
JavaScript检测上传文件大小的方法
2015/07/22 Javascript
如何利用AngularJS打造一款简单Web应用
2015/12/05 Javascript
jquery uploadify如何取消已上传成功文件
2017/02/08 Javascript
基于JavaScript中标识符的命名规则介绍
2018/01/06 Javascript
Vue常见面试题整理【值得收藏】
2018/09/20 Javascript
jQuery - AJAX load() 实例用法详解
2019/08/27 jQuery
vue视频播放暂停代码
2019/11/08 Javascript
antd-DatePicker组件获取时间值,及相关设置方式
2020/10/27 Javascript
浅析VUE防抖与节流
2020/11/24 Vue.js
[51:15]2014 DOTA2国际邀请赛中国区预选赛 Orenda VS LGD-GAMING
2014/05/22 DOTA
django接入新浪微博OAuth的方法
2015/06/29 Python
Python绘制的二项分布概率图示例
2018/08/22 Python
基于Numpy.convolve使用Python实现滑动平均滤波的思路详解
2019/05/16 Python
详解Python3定时器任务代码
2019/09/23 Python
利用Python绘制有趣的万圣节南瓜怪效果
2019/10/31 Python
python利用xlsxwriter模块 操作 Excel
2020/10/14 Python
CSS3教程(1):什么是CSS3
2009/04/02 HTML / CSS
使用CSS3中的calc()属性来以算式表达尺寸数值
2016/06/06 HTML / CSS
2014国庆节国旗下演讲稿(精选版)
2014/09/26 职场文书
写景作文评语集锦
2014/12/25 职场文书
《角的初步认识》教学反思
2016/02/17 职场文书
关于公司年会的开幕词
2016/03/04 职场文书
win11如何查看端口是否被占用? Win11查看端口是否占用的技巧
2022/04/05 数码科技