2014-09-04 4 views
0

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

당신은 속성을 검색해야하지? – Luksprog

+0

설명해 주시겠습니까 – Isuru

+1

'START_TAG '의'case'에'if (name ...') 코드 부분을 옮겨 놓으십시오 – Luksprog

답변

0

귀하의 if(name) 상태가 스위치 블록에 있기 때문입니다. 제거 case XmlPullParser.START_TAG OR : 당신은`XmlPullParser.START_TAG`가 발생할 때

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