面向 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 开始形成一次请求,然后以查询字符串的形式追加搜索
参数。
使用 DOM 扩展解析查询的结果。
清单 1.
使用 DOM
的 Yahoo 示例代码