try{
            String _url="http://www.google.com/ig/api?hl=ko&weather=seoul";
            URL url = new URL("_url);

            XmlPullParserFactory parserCreator = XmlPullParserFactory.newInstance();
             XmlPullParser parser = parserCreator.newPullParser();
             parserCreator.setNamespaceAware(true); 
             parser.setInput(url.openStream(), "euc-kr");
             int eventType = parser.getEventType();
            
             while(eventType!=XmlPullParser.END_DOCUMENT){
                 switch(eventType){
                 case XmlPullParser.START_DOCUMENT:
                     break;
                    case XmlPullParser.END_DOCUMENT:
                        break;
                 case XmlPullParser.START_TAG: 
       
             if(parser.getName().equals("current_conditions")){
                 Log.i("-","current_conditions 조건문 ");
                 flag0=true;
             }
             if(flag0){
                 if(parser.getName().equals("condition")){
                         condition = parser.getAttributeValue(0);
                         Log.i("파싱","condition 탔음");
                 }
                     if(parser.getName().equals("temp_f")){//화씨
                         temp_f=parser.getAttributeValue(0);
                         flag2=true;
                         Log.i("파싱",flag2+"");
                     }
                     if(parser.getName().equals("temp_c")){//섭씨
                         temp_c=parser.getAttributeValue(0);
                         flag3=true;                         Log.i("파싱",flag3+"");
                     }
                     if(parser.getName().equals("humidity")){//습도
                         humidity=parser.getAttributeValue(0);
                         flag4=true;
                         Log.i("파싱",flag4+"");
                     }if(parser.getName().equals("icon")){//이미지
                         image_ad="http://www.google.com"+parser.getAttributeValue(0);
                          image=getImageBitmap(image_ad);
                         flag5=true;
                     }
                     if(parser.getName().equals("wind_condition")){//바람
                         wind_condition=parser.getAttributeValue(0);
                         flag6=true;
                         }
                     
             }
                     break;
                 case XmlPullParser.TEXT:
                     break;
                 
                 case XmlPullParser.END_TAG:
                     if(parser.getName().equals("current_conditions")){
                         flag0=false;
                     }
                     break;     
                 }
                 eventType=parser.next();         

             }


위 코드로 구글 날씨 API를 이용해서 간단히 오늘의 날씨를 얻어오는 Activity를 생성 해봤는 데,

이게 이상하게도 될 때도 있고 안될때도 있습니다.

얻어올 땐 잘 얻어오고 못 얻어 올 땐 null을 반환 하는 데 제 코드가 잘못 된건가요 아니면 다른 설정이 잘못되어 있는건가요.?

Log도 걸어보고 디버깅도 해보았는데 xml 에서 'current_conditions'을 찾을때도 있고 못 찾을 때도 있습니다.


xml 구조는 아래와 같습니다.



      <xml_api_reply version="1"><weather module_id="0" tab_id="0" mobile_row="0" mobile_zipped="1" row="0" section="0"><forecast_information><city data="seoul"/><postal_code data="seoul"/><latitude_e6 data=""/><longitude_e6 data=""/><forecast_date data="2012-08-26"/><current_date_time data="1970-01-01 00:00:00 +0000"/><unit_system data="SI"/></forecast_information>
<current_conditions>
  <condition data="대체로 흐림"/>
  <temp_f data="88"/>
  <temp_c data="31"/>
  <humidity data="습도: 70%"/>
  <icon data="/ig/images/weather/mostly_cloudy.gif"/>
  <wind_condition data="바람: 북서풍, 14 km/h"/>
</current_conditions>

<forecast_conditions>
  <day_of_week data="일"/>
  <low data="21"/>
  <high data="33"/>
  <icon data="/ig/images/weather/chance_of_rain.gif"/>
  <condition data="한때 비"/>
</forecast_conditions>


조언 좀 주시면 감사하겠습니다.^^;


                               -추가내용-

위 xml 파일을 보면 text를 얻어오는 부분이 없는데 case XmlPullParser.TEXT:

조건에 로그를 찍어본 결과 출력되길래 parser.getText() 해보니깐


Unsupported API 라고 출력됩니다. 혹시 구글 날씨 API를 사용하시는 분들 중 저와 같은 경우를

겪으신 분이 있으신가요 ~?  계속 파싱되지 않는게 아니고 파싱유무가 랜덤하게 결정됩니다.