标记值未在Xml android pullParser中解析

时间:2014-09-04 08:40:52

标签: android xml-parsing android-xmlpullparser

我正在解析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();
          }

       }

Main.java

day.setText(obj.getDay());

请帮我解决这个问题。提前谢谢。

1 个答案:

答案 0 :(得分:0)

这是因为您的if(name)条件位于您的交换机块中。 删除case XmlPullParser.START_TAG OR:

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);}