background image

 

面向 PHP 

 

开发人员的 XML:

 

读、操纵和写 XML 的高级技术

PHP5 

 

中的 XML

可扩展标记语言(XML)不仅仅是一种标记语言,还是一种基于文本的数据存储格

 

式,提供了应用和描述信息的树状结构的一种基于文本的方法。下面我们将看到 Web 服

 

务上下文中的 XML

 

,也许这是在企业之外推动 XML 迅速壮大的最重要的因素之一。

PHP5 

 

提供了全新的和全部改写的 XML 

 

操作扩展,都以相同的 libxml2 代码为基础。

这一公共基础为这些扩展提供了互操作性,扩展了各自的功能。基于树的解析器包括 

SimpleXML、DOM 

 

和 XSLT 

 

处理程序。如果熟悉其他语言中的 DOM

 

,则使用 PHP 实现

 

类似的功能会更简单。基于流的解析器包括 Simple API for XML (SAX) 和 

XMLReader。SAX 

 

的功能与 PHP4 中一样。

 

使用 DOM 

 

操纵 XML

DOM 

 

可用于操纵 XML 

 

文件。只有在 XML 

 

文件比较小的情况下使用 DOM 才有效。使

 

用这种方法的优点在于众所周知的 W3C DOM 是一种坚实的标准,它具有丰富的方法和

编程的灵活性。DOM 的缺点在于编码比较困难和处理大型文档时存在性能问题。

 

使用 DOM

 

使用 DOM 

 

可以构建、修改、查询、验证和转换 XML 

 

文档。所有 DOM 方法和属性都能

 

使用,大部分 DOM level 2 方法都有适当的属性支持。由于非凡的灵活性,可以使用 

DOM 

 

解析任意复杂的文档。但是要记住,如果一次将整个大型 XML 文档载入内存,则取

得灵活性的代价相当高昂。

 

本文中的例子使用 Yahoo 

 

搜索 API、PHP5   

和 REpresentational State Transfer 

(REST) 

 

来说明 DOM 在一种有趣的应用程序环境中的使用。Yahoo 

 

选择 REST 是因为多

 

数开发人员认为 REST 

 

以使用 SOAP   

的 20% 

 

的代价提供了其 80% 的价值。选择这个应

 

用程序来说明 PHP/XML 

 

是因为 Web 

 

服务的盛行可能是推动 XML 在企业之外迅速增长

的最重要因素之一。

REST 

 

通常从服务入口 URL 开始形成一次请求,然后以查询字符串的形式追加搜索

参数

 

清单

 

 1

  

 

 

使用 DOM 扩展解析查询的结果。

 

清单 1. 

 

使用 DOM   

的 Yahoo 示例代码