Android开发之Google天气显示(综合例子)(2)

分析google返回的xml的处理类代码:
     private boolean in_current_conditions = false;
     private boolean in_forecast_conditions = false;
    
     private Integer current_temp;
     private String current_condition;
     private String current_hum;
     private String iconURL;


     @Override
     public void startDocument() throws SAXException {
  
     }

@Override
     public void endDocument() throws SAXException {
         
     }

@Override
     public void startElement(String namespaceURI, String localName,
               String qName, Attributes atts) throws SAXException {
          // 'Outer' Tags
          if (localName.equals("forecast_information")) {
               this.in_forecast_information = true;
          } else if (localName.equals("current_conditions")) {
               this.in_current_conditions = true;
          } else if (localName.equals("forecast_conditions")) {
               this.in_forecast_conditions = true;
          } else {
               String dataAttribute = atts.getValue("data");
               // 'Inner' Tags of "<forecast_information>"
               if (localName.equals("city")) {
               } else if (localName.equals("postal_code")) {
               } else if (localName.equals("latitude_e6")) {
                    /* One could use this to convert city-name to Lat/Long. */
               } else if (localName.equals("longitude_e6")) {
                    /* One could use this to convert city-name to Lat/Long. */
               } else if (localName.equals("forecast_date")) {
               } else if (localName.equals("current_date_time")) {
               } else if (localName.equals("unit_system")) {
                    if (dataAttribute.equals("SI"))
                         this.usingSITemperature = true;
               }
               // SHARED(!) 'Inner' Tags within "<current_conditions>" AND
               // "<forecast_conditions>"
               else if (localName.equals("day_of_week")) {
                    if (this.in_current_conditions) {
                        //可扩展
                    } else if (this.in_forecast_conditions) {
                        //可扩展
                    }
               } else if (localName.equals("icon")) {
                    if (this.in_current_conditions) {
                        this.setIconURL(dataAttribute);
                    } else if (this.in_forecast_conditions) {
                    //可扩展
                    }
               } else if (localName.equals("condition")) {
                    if (this.in_current_conditions) {
                        this.setCurrentCondition(dataAttribute);
                    } else if (this.in_forecast_conditions) {
                    //可扩展
                    }
               }
               // 'Inner' Tags within "<current_conditions>"
               else if (localName.equals("temp_f")) {
                    //this.setCurrentTemp(Integer.parseInt(dataAttribute));
               } else if (localName.equals("temp_c")) {
                this.setCurrentTemp(Integer.parseInt(dataAttribute));
               } else if (localName.equals("humidity")) {
                    this.setCurrentHum(dataAttribute);
               } else if (localName.equals("wind_condition")) {
                    //可扩展    
               }
               // 'Inner' Tags within "<forecast_conditions>"
               else if (localName.equals("low")) {
                    int temp = Integer.parseInt(dataAttribute);
                    if (this.usingSITemperature) {
                    //可扩展 
                    } else {
                    //可扩展 
                    }
               } else if (localName.equals("high")) {
                    //int temp = Integer.parseInt(dataAttribute);
                    if (this.usingSITemperature) {
                    //可扩展 
                    } else {
                    //可扩展 
                    }
               }
          }
     }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wwygdd.html