android解析xml数据格式,Android解析XML文件

本文介绍如何在Android中使用XmlPullParser解析XML文件,通过实例演示如何获取并处理weather资讯,包括城市信息、气温、天气状况等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在Android中解析xml文件为我们提供了一个非常容易的工具XmlPullParser接口

测试使用的XML文件内容:

20C/30C

5月20日 多云转阴

南风3-4级

上海

200

23C/25C

5月20日 多云转阴

南风1-2级

四川

50

6C/23C

5月20日 多云转阴

南风6-7级

北京

800

26C/34C

5月20日 多云转阴

南风7-7级

哈尔滨

100

解析XML文件方法

public static List getWeatherInfos(InputStream is) throws Exception{

//创建集合

List weatherInfos=null;

//创建XmlPullParser对象

XmlPullParser parser=Xml.newPullParser();

//初始化解析器

parser.setInput(is,"UTF-8");

//获取当前事件类型

int type=parser.getEventType();

WeatherInfos weatherInfo=null;

while(type!=XmlPullParser.END_DOCUMENT){

switch (type) {

case XmlPullParser.START_TAG:

if("infos".equals(parser.getName())){

weatherInfos=new ArrayList();

}else if("city".equals(parser.getName())){

weatherInfo=new WeatherInfos();

String id=parser.getAttributeValue(0);

weatherInfo.setId(Integer.parseInt(id));

}else if("temp".equals(parser.getName())){

String temp=parser.nextText();

weatherInfo.setTemp(temp);

}else if("weather".equals(parser.getName())){

String weather=parser.nextText();

weatherInfo.setWeather(weather);

}else if("wind".equals(parser.getName())){

String wind=parser.nextText();

weatherInfo.setWind(wind);

}else if("name".equals(parser.getName())){

String name=parser.nextText();

weatherInfo.setName(name);

}else if("pm".equals(parser.getName())){

String pm=parser.nextText();

weatherInfo.setPm(pm);

}

break;

case XmlPullParser.END_TAG:

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

weatherInfos.add(weatherInfo);

weatherInfo=null;

}

break;

}

//获取下一个事件类型

type=parser.next();

}

return weatherInfos;

}

在主方法中获取集合并将信息设置到TextView中:

tvWeather=(TextView) findViewById(R.id.tv_weather);

//获取集合

try {

List weatherInfos=WeatherService.getWeatherInfos(MainActivity.this.getClassLoader().getResourceAsStream("back.xml"));

//创建StringBuffer对象

StringBuffer sb=new StringBuffer();

//遍历集合

for(WeatherInfos info:weatherInfos){

sb.append("编号:"+info.getId());

sb.append("\n城市名称:"+info.getName());

sb.append("\n温度:"+info.getTemp());

sb.append("\n空气指数:"+info.getPm());

sb.append("\n天气:"+info.getWeather());

sb.append("\n风力:"+info.getWind());

sb.append("\n\n");

}

//将信息设置到TextView对象中

tvWeather.setText(sb.toString());

} catch (Exception e) {

e.printStackTrace();

}

这样就实现了Android解析Xml文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值