Ejemplo n.º 1
0
  // 解析函数
  private TodayWeather parseXML(String xmldata) {
    TodayWeather todayweather = null;
    try {
      int fengxiangCount = 0;
      int fengliCount = 0;
      int dateCount = 0;
      int highCount = 0;
      int lowCount = 0;
      int typeCount = 0;
      XmlPullParserFactory fac = XmlPullParserFactory.newInstance();
      XmlPullParser par = fac.newPullParser();
      par.setInput(new StringReader(xmldata));
      int eventType = par.getEventType();
      while (eventType != XmlPullParser.END_DOCUMENT) {
        switch (eventType) {
          case XmlPullParser.START_DOCUMENT:
            break;
          case XmlPullParser.START_TAG:
            if (par.getName().equals("resp")) todayweather = new TodayWeather();

            if (todayweather != null) {
              if (par.getName().equals("city")) {
                eventType = par.next();
                todayweather.setCity(par.getText());
              } else if (par.getName().equals("updatetime")) {
                eventType = par.next();
                todayweather.setUpdatetime(par.getText());
              } else if (par.getName().equals("shidu")) {
                eventType = par.next();
                todayweather.setShidu(par.getText());
              } else if (par.getName().equals("wendu")) {
                eventType = par.next();
                todayweather.setWendu(par.getText());
              } else if (par.getName().equals("pm25")) {
                eventType = par.next();
                todayweather.setPm25(par.getText());
              } else if (par.getName().equals("quality")) {
                eventType = par.next();
                todayweather.setQuality(par.getText());
              } else if (par.getName().equals("fengxiang") && fengxiangCount == 0) {
                eventType = par.next();
                todayweather.setFengxiang(par.getText());
                fengxiangCount++;
              } else if (par.getName().equals("fengli") && fengliCount == 0) {
                eventType = par.next();
                todayweather.setFengli(par.getText());
                fengliCount++;
              } else if (par.getName().equals("date") && dateCount == 0) {
                eventType = par.next();
                todayweather.setDate(par.getText());
                dateCount++;
              } else if (par.getName().equals("high") && highCount == 0) {
                eventType = par.next();
                todayweather.setHigh(par.getText());
                highCount++;
              } else if (par.getName().equals("low") && lowCount == 0) {
                eventType = par.next();
                todayweather.setLow(par.getText());
                lowCount++;
              } else if (par.getName().equals("type") && typeCount == 0) {
                eventType = par.next();
                todayweather.setType(par.getText());
                typeCount++;
              }
            }
            break;
          case XmlPullParser.END_TAG:
            break;
        }
        eventType = par.next();
      }
    } catch (Exception e) {
      e.printStackTrace();
    }
    return todayweather;
  }