Home >Backend Development >PHP Tutorial >PHP开发人员:充实您的XML工具箱_PHP

PHP开发人员:充实您的XML工具箱_PHP

WBOY
WBOYOriginal
2016-06-01 12:40:18751browse

PHP 对 XML 的支持随着 PHP 的流行不断在增强。可以从本文中找出近一打 PHP 开发人员可用的 XML 工具。 工具顾问 Craig Knudsen 还描述了一个从 PHP 内部访问更多 Java 工具的方法。
PHP 对 XML 的支持始于版本 3.06,当时 James Clark 流行的基 于 C 的 expat 语法分析器首次作为 PHP 3 模块集成到了该版本。自那时起,不断地开发了许多用于 XML 的 PHP 模块和类;有关我在最近一次对目前供应工具调查中发现的一些工具的概述,请参阅表格:PHP 开发人员的 XML 工具。

SAX 还是 DOM 语法分析?
PHP 4 的缺省配置包含 expat XML 语法分析器,这是一个 SAX(XML 的简单 API,Simple API for XML)语法分析器。PHP 4 中可使用 DOM(文档对象模型,Document Object Model)API,除非把 PHP 4 程序包配置成可使 用 DOM API(使用 --with-dom 配置选项)或 使用 Windows 的二进制发行版来启动 PHP 4 程序包,否则将不构建它。为了能使用 PHP 的 DOM 模块,需安 装 GNOME XML 库,而且需要使用 PHP 4.0.4 或更新版本。

DOM 和 SAX 使用不同的模式对 XML 进行语法分析。当 SAX 语法分析器遇到一个您 感兴趣的标记时,它将调用一个已指定的回调。而 DOM 却将整个文档装入一个您可以检查和操纵的树结构中。自 版本 4.0.4 起,PHP 的 DOM 模块还支持 XPath。

不是每个人都可以控制服务器环境的,所以重新构建 PHP 可能不可行。值得庆幸的是,还有另一种在 PHP 中使用 DOM 的方法。 项目已开发 了一个支持 DOM 的 PHP 类。由于它全部是用 PHP 编写的,所以不需要对服务器进行任何修改。

为 XML 配置 PHP
Windows 用户将发现下载 PHP 的二进制发行版非常容易。二进制发行版的好处在于已经有人为您做了一部分的工作;您不必另外下载任何代码进行编译,并且它已经内置了许多扩展(包括 DOM 扩展)。

如果使用的不是 Windows,则可能需要从源代码构建 PHP。缺省时, PHP 最新发行版将自动包含基于 expat (SAX) 的 XML 支持。如果要在程序包中包含 DOM 支持,则必须将 PHP 程序包配置成能处理 DOM。有关如何从源代码构 建 PHP 的详细信息,请查看参考资料。同时,请牢记 在运行 PHP 的 configure 脚本时需要将 --with-dom 作为一个选项添加进去。

PHP 中的 DOM 支持仍然处于实验阶段(自版本 4.0.5 起),这意味 该 API 会在今后的版本中作更改。

使用 XSLT
PHP 4 还添加了 XSLT 功能。(XSLT 允许您将 XML 文档变换为其它格式,如 PDF 或 HTML 格式的文档,并且还允许您做更多程序上的更改。)PHP 4 中的 XSLT 模块可同时使用 expat 和 Sabloton。 在构建 PHP 之前,必须先下载并安装 Sabloton(见参考资料), 并且必须在 PHP 程序包配置期间使用 --with-sablot 选项。

Web 服务
如果您对使用 PHP 开发 Web 服务感兴趣,可以根据自己的需要 使用 SOAP 或 XML-RPC。SOAPx4 软件包同时提供了用 PHP 编写的客户机和服务器。对于 XML-RPC,可以从多种 XML-RPC 实现中选择一个, 包括 Useful Information 公司开发的很好的一个。

SOAP 和 XML-RPC 实现全部都是用 PHP 编写的。 如果您的服务器为 PHP 启用了 XML 支持(缺省情况),则不需要对服务器 作任何修改。

PHP 之外的选择
如果一直无法为要使用的工具找到 PHP 接口,还有另外一个选择:Java。虽然 PHP 的 XML 工具列表在不断扩大,但 JAVA 中仍然有更多可用的 XML 工具。PHP 4 包含了对访问 Java 对象的支持,这使 PHP 开发人员 可以使用各种 Java XML 工具。

虽然 PHP 的 Java 支持并非是全新的,但要找出如何安装与 使用 Java 模块的指示信息仍要费一番工夫。PHP 手册中没有这些指示信息。但是,您可以 查看 PHP 发行版 ext/java 目录下的“自述文件”了解介绍安装和使用的文档。切记,安装过程 对每个 Java 实现而言都存在少许差异。

PHP 开发人员的 XML 工具

语法分析器:
PHP XML 基于 SAX 的语法分析器,它根据 Jim Clark 的 expat 构建在 PHP 内。
PHP DOM 构建在 PHP 中的 DOM 支持,它需要 Sabloton。
允许 DOM 使用 PHP DOM 模块来访问 XML 文档。
phpDOM phpDOM 为 PHP DOM 模块提供了一个 PHP4 类封装器。
PRAX PRAX 是 RAX 的一种 PHP 实现,SAX 的替代。
协议:
SOAPx4 Dietrich Ayala 开发的 SOAP 客户机和服务器实现
PHP 的 SOAP 客 户机和服务器 Giga Ideas 开发的 SOAP 客户机和服务器实现
PHP 的 XML-PRC 客 户机和服务器/td> Useful Information 公司开发的 XML-RPC 客户机和服务器实现
eZ xmlrpc/td> XML-RPC 的客户机和服务器实现
Hail Stone XML-RPC 服务器
XMLRPC-EPI 这是一个用起来简单快捷的基于 C 的 PHP 模块,实现了客户机和服务器 XML-RPC。



参考资料

您对 PHP 工具有什么意见吗?请通过单击文章顶部或底部的讨论,可参加与本文相关的论坛。
可以从 PHP 下载页面下载 PHP 的源代码 或 Windows 的二进制发行版。
文档对象模型 (DOM) 提供了一个标准对象集,用于表示 HTML 和 XML 文档,并提供了一个标准的接口,用于访问和操纵这些文档。
XML 路径语言 (XPath) 是 一种 XSLT 和 XPointer 都能使用的,用于定位 XML 文档中某些部分的的语言。
XML 的简单 API (SAX) 是对基于事件的 XML 进行语法分析的一个标准接口。
XML 面向记录 的 API (RAX) 是两个主流 API(SAX 和 DOM)的替代项。
工业强度 亦或泡沫?对 SOAP、RPC 和 RMI 进行了剖析。
XML-RPC 允许在各不相同的操作系统中、在不同环境下运行的软件在整个 Internet 上进行过程调用。
使用 PHP 脚本 语言快速编写 Web 数据库脚本包含了从源代码构建 PHP 的逐步 指示信息,并介绍了构建数据库驱动的 PHP 应用程序。
为了在从源代码构建 PHP 时启用 DOM 支持,需安装 Gnome 的 XML C 库。
为了使用 PHP 的 XSLT 模 块,在构建 PHP 之前必须安装 Sabloton。
PHP 手册包含了有关使用基 于 expat 的 XML 功能、DOM XML 功能和 XSLT 功 能的文档。
PHPBuilder 的 PHP & Java 介绍了如何安装和使用 PHP Java 模块。
PHP-XML 邮件列表由 O'Reilly Network 掌管。
请在“DB2 开发者园地”里 Dan Scott 所著的文章中查找 如何 编 译 PHP 使其成为带 DB2 支持的动态装入的 Apache 模块。
可以仔细查看以下联机教程以了解使用 PHP 和 XML 的代码示例。

PHPBuilder 有一些有关对 XML 进行语法分析的佳作,包括使 用 expat 功能和 DOM XML:expat 的替代项。
phpWizard.net 中有一篇标题为 使 用 PHP 对 XML 进行语法分析的好文章。
PHP Everywhere 有关于使 用 XML-RPC 的教程。
可从 Linux.com 上获取 有关使用 XML-RPC 的简单示例。
Solutions 2001 开发人员大会将于 8 月 13 日至 18 日在旧金山召开; 请在 AgendaBuilder 中搜索或浏览 230 多个会议的描述。有两打以上的会议聚集中于 XML 及其相关技术,包括:

实践: 将 XML 与 DB2 集成
实践: Voice XML 工具/构建绝佳应用程序
XSL 示例: XML 变换简介
使 用 Java 技术对 XML 文档进行语法分析和编程。

请参加内含 17 个有关开发习惯问题的调查,以便帮助 IBM 改进用于开发软件应用程序的 XML 工具和服务。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn