XML檔案解析之PULL解析

2021-07-09 15:46:11 字數 1456 閱讀 7707

1.pull概念

pull解析xml的方式與sax解析xml方式一樣,也是基於事件驅動。

xmlpullparse中定義的常量:

start_documet: 讀取到xml的宣告返回

start_tag:           讀取到xml的開始標籤返回

text:                      讀取到xml的文字返回

end_tag:               讀取到xml的結束標籤返回

end_documet:    讀取到xml的結束返回

2.解析步驟

(1)建立xmlpullparse***ctory物件(newinstance())

(2)根據xmlpullparse***ctory物件的newpullparser()方法建立xmlpullparser解析器物件

(3)使用xmlpullparser的setinput方法設定輸入流以及編碼

(4)通過xmlpullparser的geteventtype來獲得pull解析常用事件型別

(5)通過xmlpullparser的next獲取下乙個元素並觸發相應事件

3.例項

需要解析的xml:

<?xml version="1.0" encoding="utf-8"?>

zhangmq

female

24 zhouhy

male

24

解析:

public class pullparseactivity extends activity 

private string pullpar***ml() catch (ioexception e1)

try else if (eventtype == xmlpullparser.start_tag)

} else if (eventtype == xmlpullparser.end_tag)

} else if (eventtype == xmlpullparser.text) else if (("gender").equals(nodename)) else if (("age").equals(nodename))

}try catch (ioexception e)

}} catch (xmlpullparserexception e)

return str;

}}

4.pull解析與sax解析的差別

sax解析的工作方式是解析開始後不能控制事件的處理主動結束,處理過程自動進行。

pull解析的工作方式是開始解析後允許應用從解析器中獲取事件,可以在滿足了需要的條件後不再獲取事件,結束解析。

個人感覺dom sax pull三種解析方式中,pull的使用最簡單。

當然也要根據需要處理的xml大小以及以及需求要合適的採用相應的解析方式。

XML解析之PULL解析

pull解析 為解決sax的一些侷限 不能手動控制解析結束 出現pull解析 使用pull解析需要匯入兩個jar包 kxml2 2.3.0.jar xmlpull 1 0 5.jar 核心類 xmlpullparse ctory xmlpullparser 步驟 獲取工廠類例項 xmlpullpar...

PULL解析XML檔案

常用的xml pull的介面和類 pull解析器的執行方式和sax類似,都是基於事件的模式。標籤名說明 對應的數字 start document 文件開始標記 0end document 文件結束標記 1start tag 標籤開始標記 2end tag 標籤結束標記 3初始化處理 從assets中...

使用PULL解析XML檔案

pull解析器的執行方式與 sax 解析器相似。它提供了類似的事件,如 開始元素和結束元素事件,使用parser.next 可以進入下乙個元素並觸發相應事件。事件將作為數值 被傳送,因此可以使用乙個switch對感興趣的事件進行處理。當元素開始解析時,呼叫parser.nexttext 方法可以獲取...