pull解析xml文件
发布时间:2020-12-16 00:26:14 所属栏目:百科 来源:网络整理
导读:TextView tv = (TextView) findViewById(R.id.tv);try {//getWeatherInfos方法参数是一个InputStream 把weather.xml导入weather.xmlListWeatherInfos infos = WeatherService.getWeatherInofs(MainActivity.class.getClassLoader().getResourceAsStream("wea
TextView tv = (TextView) findViewById(R.id.tv); try { //getWeatherInfos方法参数是一个InputStream 把weather.xml导入weather.xml List<WeatherInfos> infos = WeatherService .getWeatherInofs(MainActivity.class.getClassLoader() .getResourceAsStream("weather.xml")); StringBuffer sb = new StringBuffer(); for (WeatherInfos info : infos) { String str = info.toString(); sb.append(str); sb.append("n"); } tv.setText(sb.toString()); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); Toast.makeText(this,"解析信息失败",0).show(); }
public class WeatherService { public static List<WeatherInfos> getWeatherInofs(InputStream is) throws Exception{ XmlPullParser parser = Xml.newPullParser(); //初始化解析器 parser.setInput(is,"utf-8"); List<WeatherInfos> weatherInfos = null; //WeatherInfos类,包含namew、wind、pm等成员变量 WeatherInfos 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<WeatherInfos>(); }else if("city".equals(parser.getName())){ weatherInfo = new WeatherInfos(); String idStr = parser.getAttributeValue(0); weatherInfo.setId(Integer.parseInt(idStr)); }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; } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |