标记值不在Xml中解析android pullParser

问题描述:

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

日期值不会被解析。

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

请帮助我。提前致谢。

+0

你不应该获取的属性,当你遇到'XmlPullParser.START_TAG'? – Luksprog 2014-09-04 09:30:41

+0

能否请你解释一下 – Isuru 2014-09-04 09:36:24

+1

把'if ...(name ...'代码部分放在'case'中作为'START_TAG'。 – Luksprog 2014-09-04 09:38:33

这是因为您的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);}