PHP - XML 簡介



藉助 PHP 的內建函式和庫,我們可以處理 XML 資料的操作。XML 代表可擴充套件標記語言,是一種用於結構化文件交換的資料格式,尤其是在 Web 上。

XML 是一種流行的檔案格式,用於資料序列化,儲存資料、將其傳輸到另一個位置並在目標位置重建它。

在本章中,我們將學習使用 PHP 處理 XML 的基礎知識。

XML 的特性

XML 的一個特性是它既可以被人閱讀也可以被機器閱讀。XML 的規範由全球資訊網聯盟定義和標準化。PHP 解析器可以對 XML 資料執行讀/寫操作。

XML 標籤

與 HTML 類似,XML 文件也由標籤組成。但是,您可以定義自己的標籤,這與 HTML 不同,在 HTML 中您需要使用預定義的標籤來組成 HTML 文件。

HTML 標籤本質上是在文字、影像、多媒體資源等上應用格式化屬性。XML 標籤為資料元素定義使用者指定的屬性。

XML 文件

XML 文件具有標籤的層次結構,這些標籤定義文件中資料的元素和屬性。每個 XML 文件都包含一個根元素,該元素包含其他元素。元素可以具有屬性,這些屬性提供有關元素的附加資訊或屬性。元素中的資料由開始和結束標籤括起來。

示例

下面給出了一個典型 XML 文件的示例:

<?xml version = '1.0' encoding = 'UTF-8'?>   
<note>
   <Course>Android</Course>
   <Subject>Android</Subject>
   <Company>TutorialsPoint</Company>
   <Price>$10</Price>
</note>

XML 解析器的型別

在 PHP 中,有兩種型別的 XML 解析器可用:

  • 基於樹的解析器

  • 基於事件的解析器

基於樹的解析器

使用這種型別的解析器,PHP 將整個 XML 文件載入到記憶體中,並將 XML 文件轉換為樹結構。它分析整個文件,並提供對樹元素的訪問。

對於較小的文件,基於樹的解析器執行良好,但對於大型 XML 文件,它會導致主要的效能問題。SimpleXML 解析器DOM XML 解析器是基於樹的解析器的示例

Simple XML 解析器

Simple XML 解析器也稱為基於樹的 XML 解析器,它將解析簡單的 XML 檔案。Simple XML 解析將呼叫 simplexml_load_file() 方法以從特定路徑訪問 xml。

DOM 解析器

DOM 解析器也稱為複雜節點解析器,用於解析高度複雜的 XML 檔案。它用作修改 XML 檔案的介面。DOM 解析器使用 UTF-8 字元編碼進行編碼。

基於事件的解析器

基於事件的解析器不會將整個 XML 文件載入到記憶體中。相反,它一次讀取一個節點。解析器允許您即時互動。一旦您移動到下一個節點,舊節點將從記憶體中刪除。

由於不涉及記憶體過載,因此這種型別的解析器適用於大型 XML 文件,並且文件的解析速度比任何基於樹的解析器都快。XMLReader 和 XML Expat 解析器是基於事件的解析器的示例。

XML 解析器

XML 解析基於 SAX 解析。它比所有上述解析器都快。它將建立 XML 檔案並解析 XML。XML 解析器使用 ISO-8859-1、US-ASCII 和 UTF-8 字元編碼進行編碼。

XML Reader

XML Reader 解析也稱為 Pull XML 解析。它用於以更快的速度讀取 XML 檔案。它適用於具有 XML 驗證的高度複雜的 XML 文件。

廣告