0

我正在解析一个 XML 文档。它工作正常。但是一个值没有被解析。这是 xml 文档 http://api.openweathermap.org/data/2.5/forecast/daily?q=Kataragama&mode=xml&units=metric&cnt=7

不解析日期值。

private String day="time";
public String getDay() {
        return day;
    }
public void parseXMLAndStoreIt(XmlPullParser myParser) {
          int event;
          String text=null;
          try {
             event = myParser.getEventType();
             while (event != XmlPullParser.END_DOCUMENT) {
                String name=myParser.getName();
                switch (event){
                   case XmlPullParser.START_TAG:
                   break;
                   case XmlPullParser.TEXT:
                   text = myParser.getText();
                   break;

                   case XmlPullParser.END_TAG:



                      if(name.equals("time")){
                          day = myParser.getAttributeValue(null,"day");
                      }

                      else{
                      }
                      break;
                      }      
                      event = myParser.next(); 

                  }
                     parsingComplete = false;
          } catch (Exception e) {
             e.printStackTrace();
          }

       }

主.java

day.setText(obj.getDay());

请帮我解决一下这个。提前致谢。

4

1 回答 1

0

这是因为您的if(name)条件在您的开关块中。删除case XmlPullParser.START_TAGOR:

String day=null;

        try {
              while (myParser.getEventType()!= XmlPullParser.END_DOCUMENT) {
                      if(myParser.getEventType()==XmlPullParser.START_TAG && myParser.getName().equals("time")
                        day= myParser.getAttributeValue(null,"day");  
        }
     }catch(IndexOutOfBoundsException e){
    day= myParser.getAttributeValue(0);}
于 2014-09-06T06:53:43.230 回答