设为首页收藏本站language 语言切换
查看: 1534|回复: 0
收起左侧

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

[复制链接]
发表于 2010-2-24 13:41:10 | 显示全部楼层 |阅读模式
<BLOCKQUOTE><FONT color=#ff0000>HP 对 XML 的支持随着 PHP 的流行不断在增强。可以从本文中找出近一打 PHP 开发人员可用的 XML 工具。 工具顾问 Craig Knudsen 还描述了一个从 PHP 内部访问更多 Java 工具的方法。</FONT></BLOCKQUOTE><>HP 对 XML 的支持始于版本 3.06,当时 James Clark 流行的基 于 C 的 expat 语法分析器首次作为 PHP 3 模块集成到了该版本。自那时起,不断地开发了许多用于 XML 的 PHP 模块和类;有关我在最近一次对目前供应工具调查中发现的一些工具的概述,请参阅<A href="#Table1">表格:PHP 开发人员的 XML 工具</A>。</P><><A id=1 name=1></A>SAX 还是 DOM 语法分析?<BR>HP 4 的缺省配置包含 expat XML 语法分析器,这是一个 SAX(XML 的简单 API,Simple API for XML)语法分析器。PHP 4 中可使用 DOM(文档对象模型,Document Object Model)API,除非把 PHP 4 程序包配置成可使 用 DOM API(使用 <CODE>--with-dom</CODE> 配置选项)或 使用 Windows 的二进制发行版来启动 PHP 4 程序包,否则将不构建它。为了能使用 PHP 的 DOM 模块,需安 装 GNOME XML 库,而且需要使用 PHP 4.0.4 或更新版本。</P><>DOM 和 SAX 使用不同的模式对 XML 进行语法分析。当 SAX 语法分析器遇到一个您 感兴趣的标记时,它将调用一个已指定的回调。而 DOM 却将整个文档装入一个您可以检查和操纵的树结构中。自 版本 4.0.4 起,PHP 的 DOM 模块还支持 XPath。</P><>不是每个人都可以控制服务器环境的,所以重新构建 PHP 可能不可行。值得庆幸的是,还有另一种在 PHP 中使用 DOM 的方法。&lt;phpXML/&gt; 项目已开发 了一个支持 DOM 的 PHP 类。由于它全部是用 PHP 编写的,所以不需要对服务器进行任何修改。</P><><A id=2 name=2></A>为 XML 配置 PHP<BR>Windows 用户将发现下载 PHP 的二进制发行版非常容易。二进制发行版的好处在于已经有人为您做了一部分的工作;您不必另外下载任何代码进行编译,并且它已经内置了许多扩展(包括 DOM 扩展)。</P><>如果使用的不是 Windows,则可能需要从源代码构建 PHP。缺省时, PHP 最新发行版将自动包含基于 expat (SAX) 的 XML 支持。如果要在程序包中包含 DOM 支持,则必须将 PHP 程序包配置成能处理 DOM。有关如何从源代码构 建 PHP 的详细信息,请查看<A href="http://www-900.ibm.com/developerWorks/cn/xml/php-xml-toolkit/index.shtml#resources">参考资料</A>。同时,请牢记 在运行 PHP 的 <CODE>configure</CODE> 脚本时需要将 <CODE>--with-dom</CODE> 作为一个选项添加进去。</P><>HP 中的 DOM 支持仍然处于实验阶段(自版本 4.0.5 起),这意味 该 API 会在今后的版本中作更改。</P><><A id=3 name=3></A>使用 XSLT<BR>HP 4 还添加了 XSLT 功能。(XSLT 允许您将 XML 文档变换为其它格式,如 PDF 或 HTML 格式的文档,并且还允许您做更多程序上的更改。)PHP 4 中的 XSLT 模块可同时使用 expat 和 Sabloton。 在构建 PHP 之前,必须先下载并安装 Sabloton(见<A href="http://www-900.ibm.com/developerWorks/cn/xml/php-xml-toolkit/index.shtml#resources">参考资料</A>), 并且必须在 PHP 程序包配置期间使用 <CODE>--with-sablot</CODE> 选项。</P><><A id=4 name=4></A>Web 服务<BR>如果您对使用 PHP 开发 Web 服务感兴趣,可以根据自己的需要 使用 SOAP 或 XML-RPC。SOAPx4 软件包同时提供了用 PHP 编写的客户机和服务器。对于 XML-RPC,可以从多种 XML-RPC 实现中选择一个, 包括 Useful Information 公司开发的很好的一个。</P><>SOAP 和 XML-RPC 实现全部都是用 PHP 编写的。 如果您的服务器为 PHP 启用了 XML 支持(缺省情况),则不需要对服务器 作任何修改。</P><><A id=5 name=5></A>HP 之外的选择<BR>如果一直无法为要使用的工具找到 PHP 接口,还有另外一个选择:Java。虽然 PHP 的 XML 工具列表在不断扩大,但 JAVA 中仍然有更多可用的 XML 工具。PHP 4 包含了对访问 Java 对象的支持,这使 PHP 开发人员 可以使用各种 Java XML 工具。</P><>虽然 PHP 的 Java 支持并非是全新的,但要找出如何安装与 使用 Java 模块的指示信息仍要费一番工夫。PHP 手册中没有这些指示信息。但是,您可以 查看 PHP 发行版 ext/java 目录下的“自述文件”了解介绍安装和使用的文档。切记,安装过程 对每个 Java 实现而言都存在少许差异。</P><><A id=Table1 name=Table1></A><B>HP 开发人员的 XML 工具</B></P><TABLE cellPadding=5 border=1><TBODY><TR><TD vAlign=top colSpan=2><B><FONT face="helvetica, helv, arial"><FONT size=-1>语法分析器:</FONT></FONT></B></TD></TR><TR><TD vAlign=top><A href="manual/ref.xml.php">HP XML</A></TD><TD>基于 SAX 的语法分析器,它根据 Jim Clark 的 expat 构建在 PHP 内。</TD></TR><TR><TD vAlign=top><A href="/manual/ref.domxml.php">HP DOM</A></TD><TD vAlign=top>构建在 PHP 中的 DOM 支持,它需要 Sabloton。</TD></TR><TR><TD vAlign=top><A href="http://www.phpxml.org/">&lt;phpXML/&gt;</A></TD><TD>&lt;phpXML/&gt;允许 DOM 使用 PHP DOM 模块来访问 XML 文档。</TD></TR><TR><TD vAlign=top><A href="http://devil.medialab.at/phpdom.php">phpDOM</A></TD><TD>phpDOM 为 PHP DOM 模块提供了一个 PHP4 类封装器。</TD></TR><TR><TD vAlign=top><A href="http://www.oreillynet.com/~rael/lang/php/PRAX/">RAX</A></TD><TD>RAX 是 RAX 的一种 PHP 实现,SAX 的替代。</TD></TR><TR><TD vAlign=top colSpan=2><B>协议:</B></TD></TR><TR><TD vAlign=top><A href="http://dietrich.ganx4.com/soapx4/">SOAPx4</A></TD><TD>Dietrich Ayala 开发的 SOAP 客户机和服务器实现</TD></TR><TR><TD vAlign=top><A href="http://www.gigaideas.com.cn/phpsoap/">HP 的 SOAP 客 户机和服务器</A></TD><TD>Giga Ideas 开发的 SOAP 客户机和服务器实现</TD></TR><TR><TD vAlign=top><A href="http://xmlrpc.usefulinc.com/php.html">HP 的 XML-PRC 客 户机和服务器</A>&lt;//td&gt;</TD><TD>Useful Information 公司开发的 XML-RPC 客户机和服务器实现</TD></TR><TR><TD vAlign=top><A href="http://developer.ez.no/article/static/53">eZ xmlrpc</A>&lt;//td&gt;</TD><TD>XML-RPC 的客户机和服务器实现</TD></TR><TR><TD vAlign=top><A href="http://www.codepunk.com/">Hail Stone</A></TD><TD>XML-RPC 服务器</TD></TR><TR><TD vAlign=top><A href="http://xmlrpc-epi.sourceforge.net/main.php?t=php_about/">XMLRPC-EPI</A></TD><TD>这是一个用起来简单快捷的基于 C 的 PHP 模块,实现了客户机和服务器 XML-RPC。</TD></TR></TBODY></TABLE><BR><BR><><A id=resources name=resources>参考资料</A></P><UL><LI>您对 PHP 工具有什么意见吗?请通过单击文章顶部或底部的<B>讨论</B>,可参加与本文相关的<A href="javascript:void forumWindow()">论坛</A>。 <LI>可以从 <A href="http://www.php.net/downloads.php">HP 下载页面</A>下载 PHP 的源代码 或 Windows 的二进制发行版。 <LI><A href="http://www.w3.org/TR/REC-DOM-Level-1/">文档对象模型</A> (DOM) 提供了一个标准对象集,用于表示 HTML 和 XML 文档,并提供了一个标准的接口,用于访问和操纵这些文档。 <LI><A href="http://www.w3.org/TR/xpath">XML 路径语言</A> (XPath) 是 一种 XSLT 和 XPointer 都能使用的,用于定位 XML 文档中某些部分的的语言。 <LI><A href="http://megginson.com/SAX/index.html">XML 的简单 API</A> (SAX) 是对基于事件的 XML 进行语法分析的一个标准接口。 <LI><A href="http://www.xml.com/pub/a/2000/04/26/rax/index.html">XML 面向记录 的 API</A> (RAX) 是两个主流 API(SAX 和 DOM)的替代项。 <LI><A href="http://www-106.ibm.com/developerWorks/xml/library/x-soapbx3/index.html">工业强度 亦或泡沫?</A>对 SOAP、RPC 和 RMI 进行了剖析。 <LI><A href="http://www.xmlrpc.com/">XML-RPC</A> 允许在各不相同的操作系统中、在不同环境下运行的软件在整个 Internet 上进行过程调用。 <LI><A href="http://www-106.ibm.com/developerWorks/library/web-php/index.html">使用 PHP 脚本 语言快速编写 Web 数据库脚本</A>包含了从源代码构建 PHP 的逐步 指示信息,并介绍了构建数据库驱动的 PHP 应用程序。 <LI>为了在从源代码构建 PHP 时启用 DOM 支持,需安装 <A href="http://www.xmlsoft.org/">Gnome 的 XML C 库</A>。 <LI>为了使用 PHP 的 XSLT 模 块,在构建 PHP 之前必须安装 <A href="http://www.gingerall.com/charlie-bin/get/webGA/act/sablotron.act">Sabloton</A>。 <LI><A href="http://www.php.net/manual/">HP 手册</A>包含了有关使用<A href="http://www.php.net/manual/en/ref.xml.php">基 于 expat 的 XML 功能</A>、<A href="http://www.php.net/manual/en/ref.domxml.php">DOM XML 功能</A>和 <A href="http://www.php.net/manual/en/ref.xslt.php">XSLT 功 能</A>的文档。 <LI>HPBuilder 的 <A href="http://www.phpbuilder.com/columns/marknold20001221.php3">HP &amp; Java</A> 介绍了如何安装和使用 PHP Java 模块。 <LI><A href="http://www.onlamp.com/pub/a/php/php-xml-ml.html">HP-XML 邮件列表</A>由 O'Reilly Network 掌管。 <LI>请在“DB2 开发者园地”里 Dan Scott 所著的文章中查找 如何<A href="http://www-900.ibm.com/developerWorks/cn/cgi-bin/click.cgi?url=http://www7b.boulder.ibm.com/dmdd/library/techarticle/scott/0614_scott.html&amp;origin=x"> 编 译 PHP 使其成为带 DB2 支持的动态装入的 Apache 模块</A>。 <LI>可以仔细查看以下联机教程以了解使用 PHP 和 XML 的代码示例。 <LI  none"><UL><LI>HPBuilder 有一些有关对 XML 进行语法分析的佳作,包括<A href="http://www.phpbuilder.com/columns/justin20000428.php3">使 用 expat 功能</A>和 <A href="http://www.phpbuilder.com/columns/matt20001228.php3">DOM XML:expat 的替代项</A>。 <LI>phpWizard.net 中有一篇标题为<A href="http://www.phpwizard.net/resources/tutorials/xml_with_php.html"> 使 用 PHP 对 XML 进行语法分析</A>的好文章。 <LI>HP Everywhere 有关于<A href="http://php.weblogs.com/xml-rpc">使 用 XML-RPC</A> 的教程。 <LI>可从 <A href="http://www.linux.com/howto/XML-RPC-HOWTO/xmlrpc-howto-php.html">Linux.com</A> 上获取 有关使用 XML-RPC 的简单示例。 </LI></UL><LI><A href="http://www-900.ibm.com/developerWorks/cn/cgi-bin/click.cgi?url=www.ibm.com/events/solutionsevent/&amp;origin=x">Solutions 2001 开发人员大会</A>将于 8 月 13 日至 18 日在旧金山召开; 请在 <A href="http://216.140.182.181/solutions/guest/AgendaBuilder.html">AgendaBuilder</A> 中搜索或浏览 230 多个会议的描述。有两打以上的会议聚集中于 XML 及其相关技术,包括: <LI  none"><UL><LI><A href="http://216.140.182.181/solutions/guest/Session.do?action=display&amp;id=144">实践: 将 XML 与 DB2 集成</A><LI><A href="http://216.140.182.181/solutions/guest/Session.do?action=display&amp;id=117">实践: Voice XML 工具/构建绝佳应用程序</A><LI><A href="http://216.140.182.181/solutions/guest/Session.do?action=display&amp;id=48">XSL 示例: XML 变换简介</A><LI><A href="http://216.140.182.181/solutions/guest/Session.do?action=display&amp;id=43">使 用 Java 技术对 XML 文档进行语法分析和编程。</A></LI></UL><BR>请参加内含 17 个有关开发习惯问题的<A href="http://websurveyor.net/wsb.dll/4551/XMLSurvey.htm">调查</A>,以便帮助 IBM 改进用于开发软件应用程序的 XML 工具和服务。 </LI></UL></div>
您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-4-6 07:15 , Processed in 0.096313 second(s), 24 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表