明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

PHP 開發(fā)人員:充實(shí)您的 XML 工具箱

[摘要]PHP 對(duì) XML 的支持隨著 PHP 的流行不斷在增強(qiáng)?梢詮谋疚闹姓页鼋淮 PHP 開發(fā)人員可用的 XML 工具。 工具顧問 Craig Knudsen 還描述了一個(gè)從 PHP 內(nèi)部訪問更多 Java 工具的方法。PHP 對(duì) XML 的支持始于版本 3.06,當(dāng)時(shí) James Clark 流...
PHP 對(duì) XML 的支持隨著 PHP 的流行不斷在增強(qiáng)?梢詮谋疚闹姓页鼋淮 PHP 開發(fā)人員可用的 XML 工具。 工具顧問 Craig Knudsen 還描述了一個(gè)從 PHP 內(nèi)部訪問更多 Java 工具的方法。
PHP 對(duì) XML 的支持始于版本 3.06,當(dāng)時(shí) James Clark 流行的基 于 C 的 expat 語法分析器首次作為 PHP 3 模塊集成到了該版本。自那時(shí)起,不斷地開發(fā)了許多用于 XML 的 PHP 模塊和類;有關(guān)我在最近一次對(duì)目前供應(yīng)工具調(diào)查中發(fā)現(xiàn)的一些工具的概述,請(qǐng)參閱表格:PHP 開發(fā)人員的 XML 工具。

SAX 還是 DOM 語法分析?
PHP 4 的缺省配置包含 expat XML 語法分析器,這是一個(gè) SAX(XML 的簡(jiǎn)單 API,Simple API for XML)語法分析器。PHP 4 中可使用 DOM(文檔對(duì)象模型,Document Object Model)API,除非把 PHP 4 程序包配置成可使 用 DOM API(使用 --with-dom 配置選項(xiàng))或 使用 Windows 的二進(jìn)制發(fā)行版來啟動(dòng) PHP 4 程序包,否則將不構(gòu)建它。為了能使用 PHP 的 DOM 模塊,需安 裝 GNOME XML 庫(kù),而且需要使用 PHP 4.0.4 或更新版本。

DOM 和 SAX 使用不同的模式對(duì) XML 進(jìn)行語法分析。當(dāng) SAX 語法分析器遇到一個(gè)您 感興趣的標(biāo)記時(shí),它將調(diào)用一個(gè)已指定的回調(diào)。而 DOM 卻將整個(gè)文檔裝入一個(gè)您可以檢查和操縱的樹結(jié)構(gòu)中。自 版本 4.0.4 起,PHP 的 DOM 模塊還支持 XPath。

不是每個(gè)人都可以控制服務(wù)器環(huán)境的,所以重新構(gòu)建 PHP 可能不可行。值得慶幸的是,還有另一種在 PHP 中使用 DOM 的方法。<phpXML/> 項(xiàng)目已開發(fā) 了一個(gè)支持 DOM 的 PHP 類。由于它全部是用 PHP 編寫的,所以不需要對(duì)服務(wù)器進(jìn)行任何修改。

為 XML 配置 PHP
Windows 用戶將發(fā)現(xiàn)下載 PHP 的二進(jìn)制發(fā)行版非常容易。二進(jìn)制發(fā)行版的好處在于已經(jīng)有人為您做了一部分的工作;您不必另外下載任何代碼進(jìn)行編譯,并且它已經(jīng)內(nèi)置了許多擴(kuò)展(包括 DOM 擴(kuò)展)。

如果使用的不是 Windows,則可能需要從源代碼構(gòu)建 PHP。缺省時(shí), PHP 最新發(fā)行版將自動(dòng)包含基于 expat (SAX) 的 XML 支持。如果要在程序包中包含 DOM 支持,則必須將 PHP 程序包配置成能處理 DOM。有關(guān)如何從源代碼構(gòu) 建 PHP 的詳細(xì)信息,請(qǐng)查看參考資料。同時(shí),請(qǐng)牢記 在運(yùn)行 PHP 的 configure 腳本時(shí)需要將 --with-dom 作為一個(gè)選項(xiàng)添加進(jìn)去。

PHP 中的 DOM 支持仍然處于實(shí)驗(yàn)階段(自版本 4.0.5 起),這意味 該 API 會(huì)在今后的版本中作更改。

使用 XSLT
PHP 4 還添加了 XSLT 功能。(XSLT 允許您將 XML 文檔變換為其它格式,如 PDF 或 HTML 格式的文檔,并且還允許您做更多程序上的更改。)PHP 4 中的 XSLT 模塊可同時(shí)使用 expat 和 Sabloton。 在構(gòu)建 PHP 之前,必須先下載并安裝 Sabloton(見參考資料), 并且必須在 PHP 程序包配置期間使用 --with-sablot 選項(xiàng)。

Web 服務(wù)
如果您對(duì)使用 PHP 開發(fā) Web 服務(wù)感興趣,可以根據(jù)自己的需要 使用 SOAP 或 XML-RPC。SOAPx4 軟件包同時(shí)提供了用 PHP 編寫的客戶機(jī)和服務(wù)器。對(duì)于 XML-RPC,可以從多種 XML-RPC 實(shí)現(xiàn)中選擇一個(gè), 包括 Useful Information 公司開發(fā)的很好的一個(gè)。

SOAP 和 XML-RPC 實(shí)現(xiàn)全部都是用 PHP 編寫的。 如果您的服務(wù)器為 PHP 啟用了 XML 支持(缺省情況),則不需要對(duì)服務(wù)器 作任何修改。

PHP 之外的選擇
如果一直無法為要使用的工具找到 PHP 接口,還有另外一個(gè)選擇:Java。雖然 PHP 的 XML 工具列表在不斷擴(kuò)大,但 JAVA 中仍然有更多可用的 XML 工具。PHP 4 包含了對(duì)訪問 Java 對(duì)象的支持,這使 PHP 開發(fā)人員 可以使用各種 Java XML 工具。

雖然 PHP 的 Java 支持并非是全新的,但要找出如何安裝與 使用 Java 模塊的指示信息仍要費(fèi)一番工夫。PHP 手冊(cè)中沒有這些指示信息。但是,您可以 查看 PHP 發(fā)行版 ext/java 目錄下的“自述文件”了解介紹安裝和使用的文檔。切記,安裝過程 對(duì)每個(gè) Java 實(shí)現(xiàn)而言都存在少許差異。

PHP 開發(fā)人員的 XML 工具

語法分析器:
PHP XML 基于 SAX 的語法分析器,它根據(jù) Jim Clark 的 expat 構(gòu)建在 PHP 內(nèi)。
PHP DOM 構(gòu)建在 PHP 中的 DOM 支持,它需要 Sabloton。
<phpXML/> <phpXML/>允許 DOM 使用 PHP DOM 模塊來訪問 XML 文檔。
phpDOM phpDOM 為 PHP DOM 模塊提供了一個(gè) PHP4 類封裝器。
PRAX PRAX 是 RAX 的一種 PHP 實(shí)現(xiàn),SAX 的替代。
協(xié)議:
SOAPx4 Dietrich Ayala 開發(fā)的 SOAP 客戶機(jī)和服務(wù)器實(shí)現(xiàn)
PHP 的 SOAP 客 戶機(jī)和服務(wù)器 Giga Ideas 開發(fā)的 SOAP 客戶機(jī)和服務(wù)器實(shí)現(xiàn)
PHP 的 XML-PRC 客 戶機(jī)和服務(wù)器<//td> Useful Information 公司開發(fā)的 XML-RPC 客戶機(jī)和服務(wù)器實(shí)現(xiàn)
eZ xmlrpc<//td> XML-RPC 的客戶機(jī)和服務(wù)器實(shí)現(xiàn)
Hail Stone XML-RPC 服務(wù)器
XMLRPC-EPI 這是一個(gè)用起來簡(jiǎn)單快捷的基于 C 的 PHP 模塊,實(shí)現(xiàn)了客戶機(jī)和服務(wù)器 XML-RPC。



參考資料

您對(duì) PHP 工具有什么意見嗎?請(qǐng)通過單擊文章頂部或底部的討論,可參加與本文相關(guān)的論壇。
可以從 PHP 下載頁(yè)面下載 PHP 的源代碼 或 Windows 的二進(jìn)制發(fā)行版。
文檔對(duì)象模型 (DOM) 提供了一個(gè)標(biāo)準(zhǔn)對(duì)象集,用于表示 HTML 和 XML 文檔,并提供了一個(gè)標(biāo)準(zhǔn)的接口,用于訪問和操縱這些文檔。
XML 路徑語言 (XPath) 是 一種 XSLT 和 XPointer 都能使用的,用于定位 XML 文檔中某些部分的的語言。
XML 的簡(jiǎn)單 API (SAX) 是對(duì)基于事件的 XML 進(jìn)行語法分析的一個(gè)標(biāo)準(zhǔn)接口。
XML 面向記錄 的 API (RAX) 是兩個(gè)主流 API(SAX 和 DOM)的替代項(xiàng)。
工業(yè)強(qiáng)度 亦或泡沫?對(duì) SOAP、RPC 和 RMI 進(jìn)行了剖析。
XML-RPC 允許在各不相同的操作系統(tǒng)中、在不同環(huán)境下運(yùn)行的軟件在整個(gè) Internet 上進(jìn)行過程調(diào)用。
使用 PHP 腳本 語言快速編寫 Web 數(shù)據(jù)庫(kù)腳本包含了從源代碼構(gòu)建 PHP 的逐步 指示信息,并介紹了構(gòu)建數(shù)據(jù)庫(kù)驅(qū)動(dòng)的 PHP 應(yīng)用程序。
為了在從源代碼構(gòu)建 PHP 時(shí)啟用 DOM 支持,需安裝 Gnome 的 XML C 庫(kù)。
為了使用 PHP 的 XSLT 模 塊,在構(gòu)建 PHP 之前必須安裝 Sabloton。
PHP 手冊(cè)包含了有關(guān)使用基 于 expat 的 XML 功能、DOM XML 功能和 XSLT 功 能的文檔。
PHPBuilder 的 PHP & Java 介紹了如何安裝和使用 PHP Java 模塊。
PHP-XML 郵件列表由 O'Reilly Network 掌管。
請(qǐng)?jiān)凇癉B2 開發(fā)者園地”里 Dan Scott 所著的文章中查找 如何 編 譯 PHP 使其成為帶 DB2 支持的動(dòng)態(tài)裝入的 Apache 模塊。
可以仔細(xì)查看以下聯(lián)機(jī)教程以了解使用 PHP 和 XML 的代碼示例。

PHPBuilder 有一些有關(guān)對(duì) XML 進(jìn)行語法分析的佳作,包括使 用 expat 功能和 DOM XML:expat 的替代項(xiàng)。
phpWizard.net 中有一篇標(biāo)題為 使 用 PHP 對(duì) XML 進(jìn)行語法分析的好文章。
PHP Everywhere 有關(guān)于使 用 XML-RPC 的教程。
可從 Linux.com 上獲取 有關(guān)使用 XML-RPC 的簡(jiǎn)單示例。
Solutions 2001 開發(fā)人員大會(huì)將于 8 月 13 日至 18 日在舊金山召開; 請(qǐng)?jiān)?AgendaBuilder 中搜索或?yàn)g覽 230 多個(gè)會(huì)議的描述。有兩打以上的會(huì)議聚集中于 XML 及其相關(guān)技術(shù),包括:

實(shí)踐: 將 XML 與 DB2 集成
實(shí)踐: Voice XML 工具/構(gòu)建絕佳應(yīng)用程序
XSL 示例: XML 變換簡(jiǎn)介
使 用 Java 技術(shù)對(duì) XML 文檔進(jìn)行語法分析和編程。

請(qǐng)參加內(nèi)含 17 個(gè)有關(guān)開發(fā)習(xí)慣問題的調(diào)查,以便幫助 IBM 改進(jìn)用于開發(fā)軟件應(yīng)用程序的 XML 工具和服務(wù)。