文章教程

17.5用PHP函数处理XML文档

9/17/2020 9:26:54 PM 人评论 次浏览

17.5 用PHP函数处理XML文档

Expat是PHP脚本语言的XML解析器(亦称为XML处理器),它提供了一系列函数可以使程序访问XML文档的结构和内容。Expat是一种基于事件的解析器。XML解析器有两种基本类型:

❑一是基于树型的解析器:将XML文档转换成树型结构。这类解析器分析整篇文章,同时提供一个API来访问所产生树的每个元素。其通用的标准为DOM,即文档对象模式,本章最后将会介绍。

❑二是基于事件的解析器,将XML文档视为一系列的事件。当一个特殊事件发生时,解析器将调用开发者提供的函数来处理。基于事件的解析器有一个XML文档的数据集中视图,也就是说它集中在XML文档的数据部分,而不是其结构。这些解析器从头到尾处理文档,并将类似于元素的开始、元素的结尾、特征数据的开始等事件通过回调(callback)函数报告给应用程序。

这里简单解释一下基于事件的XML解析器,请看下面的XML代码片段。


<title>Learning PHP5</title>


对于基于事件的XML分析器,会将上面的XML代码片段分析为如下所示的事件。

❑元素开始:title。

❑CDATA部分开始,value:Learning PHP5。

❑元素结束:title。

本节先为读者介绍这些XML处理函数,即Expat所提供的函数,最后再通过一个具体实例讲解这些函数的具体用法。

从Apache1.3.22开始,Expat已经作为Apache的一部分。在UNIX系统中,可以通过-with-xml选项配置PHP将其编译入PHP。如果将PHP编译为Apache的模块,Expat将默认作为Apache的一部分。在Windows中,则必须要加载XML动态连接库。

17.5.1 XML解析器的建立和释放

函数xml_parser_create()用来初始化一个XML解析器,即建立XML解析器的实例,该实例将用于以后的所有函数。这一点非常类似于PHP中MySQL函数的连接。该函数语法如下所示。


resource xml_parser_create([string$encoding])


该函数建立一个新的XML解析器并返回可被其他XML函数使用的资源句柄。该函数有一个可选参数,用来指定要被解析的XML输入的字符编码方式。PHP5开始,可以自动侦测输入的XML编码,因此$encoding参数仅用来指定解析后输出数据的编码。默认输出的字符编码是ISO-8859-1,而PHP5.0.2及以上版本是UTF-8。

函数xml_parser_free()用来释放指定的XML解析器,该函数语法如下所示。


bool xml_parser_free(resource$parser)


参数$parser是要释放的XML解析器的指针。如果参数$parser没有指向一个合法的解析器,该函数将返回FALSE,否则将释放指定的解析器并返回TRUE。

教程类别