pull解析例項

2021-06-03 19:49:44 字數 2355 閱讀 9750

如,xml

檔案如下:

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

大話西遊

" id="10023" author="小不點

" dlcount="13233" ranking="23" icon="" tags="玄幻,熱血

,法寶"/>

西遊記" id="10023" author="小不點

" dlcount="13233" ranking="256" icon="" tags="玄幻,熱血

,法寶"/>

紅樓夢" id="10023" author="小不點

" dlcount="13233" ranking="24" icon="" tags=""/>

用pull

解析如下:

public void  pullparse(){

inputstream instream = getbookbytopidtask.class

.getresourceasstream("getbookbytopid.xml");//得到輸入流,這裡是得到檔案的輸入流,如果是和伺服器互動,得到的輸入流是網路的輸入流

xmlpullparser parser = xml.newpullparser();//得到

xml解析器的例項

parser.setinput(instream, "utf-8");//將輸入流和解析器繫結

int eventtype = parser.geteventtype();//首先得到解析器解析到檔案的哪個部位。

string elementname;

while (eventtype != xmlpullparser.end_document) {//如果沒有解析到檔案的結尾,則接著解析

switch (eventtype) {//檢測解析器解析到哪個位置

case xmlpullparser.start_document://如果解析到文件的開頭

break;

case xmlpullparser.start_tag://如果解析到標籤的開始

elementname=parser.getname();//得到標籤的名稱

if(elementname.equals("booklist")){//判斷是不是」booklist」這個標籤

booklist=new arraylist>();

pagecount=integer.parseint(parser.getattributevalue(0));//得到booklist中的第乙個屬性值。也就是pagecount的值。

break;

if(elementname.equals("book")){

mapbook= elementtohashmap(parser);// elementtohashmap這個方法是取得所有屬性的值,然後把所有屬性的鍵和值放入乙個hashmap

中,這個方法是自定義方法,下面有**。

booklist.add(book);

break;

case xmlpullparser.end_tag://判斷是不是解析到了標籤的結尾

break;

case xmlpullparser.end_document://判斷是不是解析到了文件的結尾

booklist=null;

pagecount=0;

break;

eventtype=parser.next();//乙個標籤解析完成以後,則開始下乙個標籤。

instream.close();//關閉輸入流

public static mapelementtohashmap(xmlpullparser parser) //引數是傳入的

xml解析器

maponeelement = new hashmap();

int attrcnt = parser.getattributecount();//得到當前標籤中屬性的長度

for (int attridx = 0; attridx < attrcnt; attridx++) {//遍歷這個標籤

string attrname = parser.getattributename(attridx);//得到屬性的名字

string attrvalue = parser.getattributevalue(attridx);//得到屬性的值

oneelement.put(attrname, attrvalue);//加入到

hashmap中

return oneelement;

這個方法對於這樣的xml

結構很有效果:

book標籤中含有很多的屬性,可以一次性的將屬性裝入乙個

map中。

Pull解析例項

pull解析是解析xml檔案最完美的方式,解決了dom解析和sax解析的問題,是谷歌所推薦的解析xml檔案方式,下面的 是解析本地xml檔案 在activity中的 pull解析例項 xmlpullparser pull xml.newpullparser 呼叫自定義方法 listlist pull...

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中...