안드로이드 XmlPullParser 사용 예제 :: 소림사의 홍반장!

안드로이드 XmlPullParser 사용 예제

2012. 3. 16. 10:32 - 삘쏘굿

      : 권한 필요 ( <uses-permission android:name="android.permission.INTERNET">

           - androidmanifest 파일에 추가 필요

 


///////////////////외부url연결시///////////////////
String data = editLoc.getText().toString();

//한글을 인코딩해서 인터넷으로 내보내기
data = URLEncoder.encode(data, "UTF-8");

String requestURL = "http://www.google.co.kr/ig/api?weather="+data;
URL url = new URL(requestURL);

InputStream is = url.openStream();
////////////////////////////////////////////////////

///////////////////내부xml파일이용시///////////////////
 InputStream is = getResources().openRawResource(R.raw.person);
/////////////////////////////////////////////////////////

XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); 
XmlPullParser parser = factory.newPullParser();
     
     parser.setInput(is, "UTF-8");
     int eventType = parser.getEventType();
     
     while(eventType != XmlPullParser.END_DOCUMENT) {
      
      switch(eventType) {
      
      case XmlPullParser.START_TAG:
       
       String startTag = parser.getName();
       
       if(startTag.equals("item")) { search = new SearchData(); }
       
       //방법 1. 속성값일때 얻기
	 p.setName(parser.getAttributeValue(0));
	 p.setAge(parser.getAttributeValue(1));
	 p.setAddress(parser.getAttributeValue(2));

       //방법 2. 태그값일때 얻기
       if(search != null) {
           if(startTag.equals("title")) { 
                 String temp = parser.nextText();
                 temp=temp.replace("", "");
                 temp=temp.replace("", "");
                 search.setTitle(temp); 
           }
           if(startTag.equals("link")) { search.setLink(parser.nextText()); }
           if(startTag.equals("description")) { search.setDescription(parser.nextText()); }
           if(startTag.equals("telephone")) { search.setTelephone(parser.nextText()); }
           if(startTag.equals("address")) { search.setAddress(parser.nextText()); }
           if(startTag.equals("mapx")) { search.setMapx(parser.nextText()); }
           if(startTag.equals("mapy")) { search.setMapy(parser.nextText()); }
       }
       
       break;
       
      case XmlPullParser.END_TAG:
       
       String endTag = parser.getName();
       if(endTag.equals("item")) { list.add(search); }
       
      }//end switch
      
      eventType = parser.next();
      
     }//end while
     
    } 

다른 카테고리의 글 목록

Dev. 안드로이드/참고소스 카테고리의 포스트를 톺아봅니다