Android 解析XML文件 XmlPullParser 方法
来源:互联网 发布:swoole php 编辑:程序博客网 时间:2024/06/05 22:59
解析文件
<?xml version="1.0" encoding="utf-8"?><infos><city id="1"><temp>20度/30度</temp><weather>5月20日 多云转阴</weather><wind>南风3-4级</wind><name>上海</name><pm>200</pm></city><city id="2"><temp>26度/30度</temp><weather>5月20日 多云转阴</weather><wind>南风7-8级</wind><name>北京</name><pm>800</pm></city><city id="3"><temp>10度/20度</temp><weather>5月20日 多云转阴</weather><wind>南风2-3级</wind><name>哈尔滨</name><pm>600</pm></city></infos>
生成实体类,省略GET\SET
public class WeatherInfo {private int id;private String name;private String wind;private String weather;private String temp;private String pm;@Overridepublic String toString() {return " [城市id=" + id + ", 名称=" + name + ", 风力=" + wind+ ", 天气状况=" + weather + ", 温度=" + temp + ", pm2.5=" + pm+ "]";}
解析方法
package com.asus.service;import java.io.InputStream;import java.util.ArrayList;import java.util.List;import org.xmlpull.v1.XmlPullParser;import android.util.Xml;import com.asus.entity.WeatherInfo;public class WeatherInfoService {public static List<WeatherInfo> getWeatherInfos(InputStream is) throws Exception{XmlPullParser parser = Xml.newPullParser();//初始化解析器parser.setInput(is, "UTF-8");List<WeatherInfo> weatherInfos = null;WeatherInfo weatherInfo = null;int type = parser.getEventType();while(type != XmlPullParser.END_DOCUMENT){switch (type) {case XmlPullParser.START_TAG:if("infos".equals(parser.getName()))//解析到全局标签weatherInfos = new ArrayList<WeatherInfo>();else if("city".equals(parser.getName())){weatherInfo = new WeatherInfo();String idString = parser.getAttributeValue(0);weatherInfo.setId(Integer.parseInt(idString));} 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;}}
MainActivity 中使用一个TextView 控件显示
TextView tView = (TextView) findViewById(R.id.tv);try {List<WeatherInfo> infos = WeatherInfoService.getWeatherInfos(MainActivity.class.getClassLoader().getResourceAsStream("weather.xml"));StringBuffer sb = new StringBuffer();for(WeatherInfo info : infos){String str = info.toString();sb.append(str);sb.append("\n");}tView.setText(sb.toString());} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();Toast.makeText(this, "ERROR", Toast.LENGTH_SHORT).show();}
至此完成.
- Android 解析XML文件 XmlPullParser 方法
- android解析xml文件之XmlPullParser
- android使用XmlPullParser来解析XML文件
- android使用XmlPullParser来解析XML文件
- android利用HttpURLConnection+XmlPullParser解析Xml文件
- XmlPullParser解析XML文件
- XmlPullParser解析XML文件
- XmlPullParser解析xml文件
- XmlPullParser解析xml文件
- XmlPullParser 解析XMl文件
- XmlPullParser解析xml文件
- android XmlPullParser解析xml
- android 解析xml -XmlPullParser
- Android-XmlPullParser解析XML
- 关于XmlPullParser解析Xml文件
- 使用XmlPullParser解析xml文件
- 用XmlPullParser解析XML文件
- Android解析XML之XmlPullParser
- widows下远程连接创建快捷方式自动登录
- 快速找回不见的关机选项【lpxt】
- 给Android应用开发者的十个建议
- const int *p,const * int p,int const *p
- java的反射机制详解
- Android 解析XML文件 XmlPullParser 方法
- java的MD5加密
- c语言与vc++向oracle中添加bolb数据时的异同
- 移动端产品设计的原则
- 算法学习之路2
- sql STUFF 删除指定长度的字符,并在指定的起点处插入另一组字符。
- 上一篇下一篇的问题
- 最长不重复字串
- XVID 编码器源码剖析(包含SSE2汇编)