加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

pull解析xml

发布时间:2020-12-16 05:45:41 所属栏目:百科 来源:网络整理
导读:weather.xml ? xml version = '1.0' encoding = 'utf-8' standalone = 'yes' ? weather city name 上海 / name temp 5 ° / temp pm 80 / pm / city city name 北京 / name temp -5 ° / temp pm 800 / pm / city city name 西安 / name temp 12 ° / temp p
weather.xml

<?xmlversion='1.0'encoding='utf-8'standalone='yes'?>

<weather>

<city>

<name>上海</name>

<temp>5°</temp>

<pm>80</pm>

</city>

<city>

<name>北京</name>

<temp>-5°</temp>

<pm>800</pm>

</city>

<city>

<name>西安</name>

<temp>12°</temp>

<pm>60</pm>

</city>

</weather>

packagecom.test.pullparser;

publicclassCityBean{

privateStringname;

privateStringtemp;

privateStringpm;

publicStringgetName(){

returnname;

}

publicvoidsetName(Stringname){

this.name=name;

}

publicStringgetTemp(){

returntemp;

}

publicvoidsetTemp(Stringtemp){

this.temp=temp;

}

publicStringgetPm(){

returnpm;

}

publicvoidsetPm(Stringpm){

this.pm=pm;

}

}

packagecom.test.pullparser;

importjava.io.IOException;

importjava.io.InputStream;

importjava.util.ArrayList;

importjava.util.List;

importorg.xmlpull.v1.XmlPullParser;

importorg.xmlpull.v1.XmlPullParserException;

importandroid.app.Activity;

importandroid.os.Bundle;

importandroid.util.Xml;

importandroid.view.View;

publicclassMainActivityextendsActivity{

List<CityBean>cityList=null;

@Override

protectedvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

}

publicvoidclick(Viewv){

//拿到xml文件

//获取src文件夹下的文件

InputStreaminputStream=getClassLoader().getResourceAsStream("weather.xml");

//使用pull解析器解析文件

//获取解析器对象

XmlPullParserxp=Xml.newPullParser();

//初始化

try{

CityBeancity=null;

xp.setInput(inputStream,"utf-8");

/*获取当前节点的事件类型,通过事件类型的判断,可以知道当前节点是

什么节点,从而确定将要执行的操作

intSTART_DOCUMENT=0;//解析到了头节点

intEND_DOCUMENT=1;//解析结束

intSTART_TAG=2;//解析到开始标签

intEND_TAG=3;//解析到结束标签

intTEXT=4;

intCDSECT=5;//CData

intENTITY_REF=6;

intIGNORABLE_WHITESPACE=7;

intPROCESSING_INSTRUCTION=8;

intCOMMENT=9;

intDOCDECL=10;

*/

inttype=xp.getEventType();

while(type!=XmlPullParser.END_DOCUMENT){

//获取下一个节点,并返回该节点的事件类型

//根据节点的事件类型,要做不同的操作

switch(type){

caseXmlPullParser.START_TAG:

//获取当前节点的名字

if("weather".equals(xp.getName())){

//创建cityJavabean对象,用于存放city集合

cityList=newArrayList<CityBean>();

}elseif("city".equals(xp.getName())){

//创建cityJavabean对象

city=newCityBean();

}elseif("name".equals(xp.getName())){

try{

Stringname=xp.nextText();

city.setName(name);

}catch(IOExceptione){

e.printStackTrace();

}

}

elseif("temp".equals(xp.getName())){

try{

Stringtemp=xp.nextText();

city.setTemp(temp);

}catch(IOExceptione){

e.printStackTrace();

}

}

elseif("pm".equals(xp.getName())){

try{

Stringpm=xp.nextText();

city.setPm(pm);

}catch(IOExceptione){

e.printStackTrace();

}

}

break;

caseXmlPullParser.END_TAG:

if("city".equals(xp.getName())){

//cityjavabean放入集合中

cityList.add(city);
}

break;

default:

break;

}

}

}catch(XmlPullParserExceptione){

e.printStackTrace();

}

}

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读