首頁  >  文章  >  後端開發  >  php解析xml的幾種方式

php解析xml的幾種方式

(*-*)浩
(*-*)浩原創
2019-09-12 15:36:433238瀏覽

php提供幾個解析xml的類別或方法,包括:Xml parser、 SimpleXML,、XMLReader,、DOMDocument。

php解析xml的幾種方式

XML Expat Parser:

XML Parser使用Expat XML解析器。 Expat是一種基於事件的解析器,它把XML文件視為一系列事件。當某個事件發生時,它會呼叫一個指定的函數來處理它。 Expat是無驗證的解析器,忽略任何連結到文件的DTD。 (推薦學習:PHP程式設計從入門到精通

但是,如果文件的形式不好,則會以錯誤訊息結束。由於它基於事件,且無驗證,Expat具有快速並適合web應用程式的特性。

XML Parser的優點是效能好,因為它不是將整個xml文件載入記憶體後再處理,而是邊解析邊處理。但也因為如此,它不適合那些要對xml結構做動態調整、或基於xml上下文結構做複雜操作的需求。

如果你只是要解析處理一個結構良好的xml文檔,那麼它可以很好的完成任務。要注意的是XML Parser只支援三種編碼格式:US-ASCII, ISO-8859-1和UTF-8,如果你的xml資料是其他編碼,需要先轉換成以上三個之一。

XML Parser常用的解析方式大致有兩種(其實就是兩個函數):xml_parse_into_struct和xml_set_element_handler。

xml_parse_into_struct

此方法是將xml資料解析到兩個陣列中:

index陣列-包含指向Value 陣列中值的位置的指標

value數組-包含來自被解析的XML 的資料

SimpleXML

SimpleXML是PHP5後提供的一套簡單易用的xml工具集,可以把xml轉換成方便處理的對象,也可以組織產生xml資料。不過它不適用於包含namespace的xml,而且要確保xml格式完整(well-formed)。

它提供了三個方法:simplexml_import_dom、simplexml_load_file、simplexml_load_string,函數名稱很直觀地說明了函數的作用。三個函數都會傳回SimpleXMLElement對象,資料的讀取/新增都是透過SimpleXMLElement操作。

SimpleXML的優點是開發簡單,缺點是它會將整個xml載入記憶體後再處理,所以在解析超多內容的xml文件時可能會力不從心。如果是讀取小文件,而且xml中也不包含namespace,那SimpleXML是很好的選擇。

XMLReader

XMLReader也是PHP5之後的擴充功能(5.1後預設安裝),它就像遊標一樣在文件流中移動,並在每個節點處停下來,操作起來很靈活。它提供了對輸入的快速和非快取的串流訪問,可以讀取流或文檔,使用戶從中提取數據,並跳過對應用程式沒有意義的記錄。

使用DomDocument解析XML檔案

操作步驟:

1,建立節點使用createElement方法,

2,建立文本內容使用createTextNode方法,

3,新增子節點使用appendChild方法,

4,建立屬性使用createAttribute方法

以上是php解析xml的幾種方式的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn