來源:互聯網
上載者:User
關鍵字
面向PHP開發人員的XML 第2部分: 進階XML解析技術
簡介
PHP5 提供了更多的 xml(標準化越來越近了) 解析技術。James Clark 的 Expat SAX 解析器(現在以 libxml(標準化越來越近了)2 為基礎)不再是惟一功能完備的解析器。經常需要使用完全符合 W3C 標準的 DOM 解析器進行解析。無論第 1 部分(請參閱 參考資料)介紹的 Simplexml(標準化越來越近了) 還是比 SAX 更簡單更快捷的 xml(標準化越來越近了)Reader 都提供了另外的解析方法。所有這些 xml(標準化越來越近了) 擴充現在都以 GNOME 項目的 libxml(標準化越來越近了)2 庫為基礎。這個統一的庫考慮了不同擴充之間的互通性。本文將介紹 PHP5 xml(標準化越來越近了) 解析技術,特別是大型、複雜 xml(標準化越來越近了) 文檔的解析。還介紹了關於解析技術的一些背景知識,何種方法最適合於何種類型的 xml(標準化越來越近了) 文檔,如果要作出選擇,則應依據何種標準。
Simplexml(標準化越來越近了)
第 1 部分介紹了 xml(標準化越來越近了) 的基本資料,主要介紹簡單的、入門級的API(Application Programming Interfaces,API)。通過例子說明對於處理簡單、可預測並且不大的 xml(標準化越來越近了) 文檔,Simplexml(標準化越來越近了)(必要的時候與文件物件模型(DOM)結合使用)是一種理想的選擇。
xml(標準化越來越近了) 和 PHP5
可延伸標記語言 (XML)(Extensible Markup Language,xml(標準化越來越近了))不僅被看作是一種標記語言,而且是一種基於文本的資料存放區格式,它提供了基於文本的方法來應用和描述資訊的樹狀結構。
PHP5 提供了一些全新的和重新編寫的 xml(標準化越來越近了) 解析擴充。其中包括將整個 xml(標準化越來越近了) 文檔載入到記憶體中的 Simplexml(標準化越來越近了)、DOM 和 XSLT 處理常式。也有每次把 xml(標準化越來越近了) 文檔的一部分載入到記憶體中的 Simple API for xml(標準化越來越近了) (SAX) 和 xml(標準化越來越近了)Reader。SAX 的功能和在 PHP4 中沒有變化,但不再以 expat 庫為基礎而改用了 libxml(標準化越來越近了)2 庫。如果通過其他語言熟悉了 DOM,則與以前的版本相比,在 PHP5 中使用 DOM 編程將簡單得多。
xml(標準化越來越近了) 解析基礎
解析 xml(標準化越來越近了) 有兩種基本的方式:樹和流。樹解析方式需要將整個 xml(標準化越來越近了) 文檔載入到記憶體中。樹檔案結構允許隨機訪問文件項目和編輯 xml(標準化越來越近了)。樹型解析的例子包括 DOM 和 Simplexml(標準化越來越近了)。這些解析器都在記憶體中以不同但可互操作的格式共用樹狀結構。和樹解析方式不同,流解析不需要將整個文檔載入到記憶體中。這裡的流和流音頻中的流意思很相近。其用途和目的都一樣,就是每次提交少量資料以節約頻寬和記憶體。在流解析中,只能訪問當前解析的節點,並且不能將 xml(標準化越來越近了) 作為一個文檔來編輯。流解析器的例子包括 xml(標準化越來越近了)Reader 和 SAX。
1 2 3 4 5 6 下一頁