用PHP工具包expat解析XML | |
| 作者:BUILDER.COM | |
| 如今人人鼓吹XML是Web开发者最好的朋友,有了XML的帮忙,后者即可轻松地格式化和显示来自几乎任何数据源的数据。但是,对动态内容而言,格式优良的数据却还远远谈不上达到理想状态。大多数的Web开发者都会告诉你,今天的网络上没有动态内容怎么能行!问题是:“到底该如何用XML创建动态内容呢?”
答案是用动态内容处理语言来解析XML,比如用PHP或者Perl等,从理论上说,这类程序语言是可以出于各种目的利用XML的。无非是采用一些能解析XML的工具包而已。James Clark就提供了一种名叫expat的工具包。expat XML工具包用C语言解析XML,令PHP与XML轻松共舞。 PHP是一种专为Web设计的绝佳脚本语言。XML是表示Web内容的标准。两者联手真是要多美有多美! 概述PHP用expat这种XML工具包,通过C语言来解析XML。这个工具包的函数集同Perl XML解析所采用的函数集是一样的,此外,这种工具包还是事件驱动型的解析器。这就是说,expat把每个XML标签或者新一行代码当作事件的起始,而事件就是函数的触发器。Expat的安装非常简单,如果你正在用着Apache Web服务器,那么你可以在PHP XML参考页上找到安装和下载指南。 你瞧,就像我说的那样,这套操作过程没什么特别的。不过,在我们讨论具体的示例之前先了解以下的一些警示:
好了,我们现在就来看看有关的示例! 基本示例
表A PHP解析XML的输出结果 首先我创建了XML解析器的一个实例: 只要xml_parse遇到<url>这样的开始标签,“startElement”函数就由XML解析器调用,在我们的例子中解析器就是$parser。该函数是必须定义的函数,它拥有3个自动传递给它的参数:XML解析器实例、大写的元素名称,比如URL以及该元素所具有的属性数组。在以上示例中,XML文件中的元素没有属性集合,所以数组参数为空,但这个参数还是必须存在的。 function startElement($parser_instance, $element_name, $attrs) { 处理元素标签之后,xml_parse一旦遇到XML数据就会调用“characterData”函数。这个函数也是由解析器自动调用的,该函数需要两个参数,解析器实例和包含数据的字符串。 function characterData($parser_instance, $xml_data) { echo $xml_data; } 最后xml_parse遭遇结束标签,运行“endElement”函数,该函数带两个参数,解析器实例和元素名称。 function endElement($parser_instance, $element_name) { 用PHP解析XML的轻量锻炼到这里就结束了,下面我们开始加些重活。 增加函数 PHP中还有其他一些同XML解析有关的函数。PHP.net文档对这些函数进行了完整的说明。我在这里提到了一些,你或许不久就会用到这些函数:
如果你觉得自己已经上手,我建议你仔细读读PHP手册页中提供的XML External Entity Example。这些例子提出了本文没有提到的其他一些概念以及处理文件错误的某些技术。 小结本文演示了PHP和XML的紧密结合过程。两种技术以Web为中心的天性促使它们联合起来成为动态内容所需的理想解决方案。 |
用PHP工具包expat解析XML
PHP与C/C++相关技术
最新推荐文章于 2025-04-20 08:59:23 发布
博客涉及PHP和C/C++相关内容,这两种技术在后端开发等领域应用广泛。PHP常用于Web开发,C/C++则在系统编程等方面有重要作用。
相关附件:程序清单A
1263

被折叠的 条评论
为什么被折叠?



