來源:互聯網
上載者:User
關鍵字
充實
人員
開發
PHP
XML
使用
DOM
一個
支援
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 客 戶機和伺服器 Useful Information 公司開發的 XML-RPC 客戶機和伺服器實現
eZ xmlrpc 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 工具和服務。