這篇文章將為大家詳細(xì)講解有關(guān)Android中怎么使用pull方式解析xml格式文件,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。
成都創(chuàng)新互聯(lián)是一家專業(yè)提供河西企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站建設(shè)、成都網(wǎng)站制作、HTML5建站、小程序制作等業(yè)務(wù)。10年已為河西眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進(jìn)行中。
具體如下:
will 21 will2 22
下面就來寫一個(gè)解析xml的類,解析的流程如下
(1)取得pull解析器
(2)設(shè)置解析器的輸入流
(3)產(chǎn)生第一個(gè)事件
(4)開始解析
(5)解析結(jié)束
package org.lxh.impl; import java.io.InputStream; import java.util.ArrayList; import java.util.List; import org.lxh.vo.Person; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; import android.util.Log; import android.util.Xml; public class Parse2 { public ListgetPersons(InputStream in) throws Throwable{ Person p=null; List persons=null; XmlPullParser parser=Xml.newPullParser(); parser.setInput(in, "UTF-8"); int event=parser.getEventType();//產(chǎn)生第一個(gè)事件 while(event!=XmlPullParser.END_DOCUMENT){ //如果不是文檔結(jié)束事件 switch(event){ case XmlPullParser.START_DOCUMENT: persons=new ArrayList (); //在文檔的開始實(shí)例化集合 break; case XmlPullParser.START_TAG: String name=parser.getName();//取得當(dāng)前解析器指向的元素名稱 if("person".equals(name)){ p=new Person(); p.setId(parser.getAttributeValue(0)); } if(p!=null){ if("name".equals(name)){ p.setName(parser.nextText()); //取得當(dāng)前解析器指向的下一個(gè)元素的文本節(jié)點(diǎn) } if("age".equals(name)){ p.setAge(Integer.parseInt(parser.nextText())); } } break; case XmlPullParser.END_TAG: if("person".equals(parser.getName())){ //person標(biāo)簽結(jié)束就把數(shù)據(jù)存入集合 persons.add(p); //p=null; } break; } event=parser.next(); } return persons; } }
這樣的解析比起sax應(yīng)該比較簡(jiǎn)單了,單元測(cè)試也用昨天那個(gè)只是少做了修改。下面看一下效果截圖
關(guān)于Android中怎么使用pull方式解析xml格式文件就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。