PHP 中的 XML 拉模式解析

2021-04-12 19:35:39 字數 712 閱讀 2212

研究與 php 5 **在一起的 xmlreader 庫,它使 php 頁面能夠以高效的流模式來處理 xml 文件。

php 5 引入了新的類 xmlreader,用於讀取可擴充套件標記語言(extensible markup language,xml)。與 ******xml 或文件物件模型(document object model,dom)不同,xmlreader 以流模式進行操作。即它從頭到尾讀取文件。在文件後面的內容編譯完成之前,可以先處理已編譯好的文件前面的內容,從而實現非常快速、非常高效、非常節省地使用記憶體。需要處理的文件越大,這個特點就越發重要。

與 ****** api for xml (sax) 不同,xmlreader 是推解析器,而不是拉解析器。這意味著程式是可以控制的。您將告訴解析器何時獲取下乙個文件片段,而不是在解析器看到文件後告訴您所看到的內容。您將請求內容,而不是對內容進行反應。從另乙個角度來考慮這個問題:xmlreader 是 iterator 設計模式的實現,而不是 observer 設計模式的實現。

示例問題

先從簡單例子開始討論。假定正在編寫 php 指令碼,用來接收 xml-rpc 請求並生成響應。更具體一些,假定請求如清單 1 所示。文件的根元素是 methodcall,它包含 methodname 元素和 params 元素。方法的名稱是 sqrt。params 元素包含乙個 param 元素,param 元素包含 double,double 的平方根是希望得到的值。沒有使用命名空間。

php解析xml(細說)

xml檔案 ent scale.xml檔案 key 1 50 人以下 50 149 人 150 499 人 500 999 人 1000 人以上 php解析檔案 scalexml.php檔案 echo xmlfile ent scale.xml xmlfile檔案路徑 xmlobj xml load...

php 解析xml文字

解析的方式有好幾種 1 字串形式解析 xml格式如下 reqxml 0000 0000 test1001 asfdsf asfd 100.00 測試轉賬 asdfasf234234fasfas23asq2w3 err001 test1002 asdfsaf asdfas 1000.05 測試轉賬 a...

php解析xml 可解析任意深度

test.xml zhangsan lisi analysis xml.php 對xml檔案進行解析 function get xml file filename test.xml 返回乙個xml節點的所以子元素 function get node array node 如果根節點還有子節點 if ...