package com.hua.goddess.weather; import java.io.ByteArrayInputStream; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserFactory; import com.hua.goddess.vo.WeatherInfo; public class XmlPullParseUtil { public static WeatherInfo parseWeatherInfo(String result) { WeatherInfo allWeather = null; try { // 获取XmlPullParser的实例 XmlPullParser xmlPullParser = XmlPullParserFactory.newInstance() .newPullParser(); // 设置输入流 xml文件 xmlPullParser.setInput(new ByteArrayInputStream(result.getBytes()), "UTF-8"); // 开始解析 int eventType = xmlPullParser.getEventType(); while (eventType != XmlPullParser.END_DOCUMENT) { String nodeName = xmlPullParser.getName(); switch (eventType) { case XmlPullParser.START_DOCUMENT: // 文档开始 allWeather = new WeatherInfo(); break; case XmlPullParser.START_TAG:// 开始节点 if (nodeName.equals("city")) { allWeather.setCity(xmlPullParser.nextText()); } else if (nodeName.equals("yujing")) { allWeather.setYujing(xmlPullParser.nextText()); } else if (nodeName.equals("alarmtext")) { allWeather.setAlarmtext(xmlPullParser.nextText()); } else if (nodeName.equals("warning")) { allWeather.setWarning(xmlPullParser.nextText()); } else if (nodeName.equals("temp0")) { allWeather.setTemp0(xmlPullParser.nextText()); } else if (nodeName.equals("temp1")) { allWeather.setTemp1(xmlPullParser.nextText()); } else if (nodeName.equals("temp2")) { allWeather.setTemp2(xmlPullParser.nextText()); } else if (nodeName.equals("temp3")) { allWeather.setTemp3(xmlPullParser.nextText()); } else if (nodeName.equals("temp4")) { allWeather.setTemp4(xmlPullParser.nextText()); } else if (nodeName.equals("temp5")) { allWeather.setTemp5(xmlPullParser.nextText()); } else if (nodeName.equals("temp6")) { allWeather.setTemp6(xmlPullParser.nextText()); } else if (nodeName.equals("weather0")) { allWeather.setWeather0(xmlPullParser.nextText()); } else if (nodeName.equals("weather1")) { allWeather.setWeather1(xmlPullParser.nextText()); } else if (nodeName.equals("weather2")) { allWeather.setWeather2(xmlPullParser.nextText()); } else if (nodeName.equals("weather3")) { allWeather.setWeather3(xmlPullParser.nextText()); } else if (nodeName.equals("weather4")) { allWeather.setWeather4(xmlPullParser.nextText()); } else if (nodeName.equals("weather5")) { allWeather.setWeather5(xmlPullParser.nextText()); } else if (nodeName.equals("weather6")) { allWeather.setWeather6(xmlPullParser.nextText()); } else if (nodeName.equals("wind0")) { allWeather.setWind0(xmlPullParser.nextText()); } else if (nodeName.equals("wind1")) { allWeather.setWind1(xmlPullParser.nextText()); } else if (nodeName.equals("wind2")) { allWeather.setWind2(xmlPullParser.nextText()); } else if (nodeName.equals("wind3")) { allWeather.setWind3(xmlPullParser.nextText()); } else if (nodeName.equals("wind4")) { allWeather.setWind4(xmlPullParser.nextText()); } else if (nodeName.equals("wind5")) { allWeather.setWind5(xmlPullParser.nextText()); } else if (nodeName.equals("wind6")) { allWeather.setWind6(xmlPullParser.nextText()); } else if (nodeName.equals("intime")) { allWeather.setIntime(xmlPullParser.nextText()); } else if (nodeName.equals("tempNow")) { allWeather.setTempNow(xmlPullParser.nextText()); } else if (nodeName.equals("shidu")) { allWeather.setShidu(xmlPullParser.nextText()); } else if (nodeName.equals("winNow")) { allWeather.setWinNow(xmlPullParser.nextText()); } else if (nodeName.equals("feelTemp")) { allWeather.setFeelTemp(xmlPullParser.nextText()); } else if (nodeName.equals("shiduNow")) { allWeather.setShiduNow(xmlPullParser.nextText()); } else if (nodeName.equals("todaySun")) { allWeather.setTodaySun(xmlPullParser.nextText()); } else if (nodeName.equals("tomorrowSun")) { allWeather.setTomorrowSun(xmlPullParser.nextText()); } else if (nodeName.equals("AQIData")) { allWeather.setAQIData(xmlPullParser.nextText()); } else if (nodeName.equals("PM2Dot5Data")) { allWeather.setPM2Dot5Data(xmlPullParser.nextText()); } else if (nodeName.equals("PM10Data")) { allWeather.setPM10Data(xmlPullParser.nextText()); } break; case XmlPullParser.END_TAG:// 结束节点 break; default: break; } eventType = xmlPullParser.next(); } } catch (Exception e) { //解析出错会返回空 e.printStackTrace(); } return allWeather; } }