PHP 開發(fā)人員:充實(shí)您的 XML 工具箱
發(fā)表時(shí)間:2024-02-21 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]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ù)。