面向PHP開發人員的XML 第2部分: 進階XML解析技術

來源:互聯網
上載者: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 下一頁
  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.