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 的方法。<phpXML/> 項目已開發 了一個支持 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。
<phpXML/> <phpXML/>允許 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 工具和服務。