본문 바로가기

DEVELOPMENT/ANDROID

[android] XmlPullParser 간단한 사용법

  1. try {
  2.                     // XML 데이터를 읽어옴
  3.                     URL url = new URL("불러올 XML 주소");
  4.                     InputStream in = url.openStream();
  5.  
  6.                     XmlPullParserFactory factory = XmlPullParserFactory
  7.                             .newInstance();
  8.                     XmlPullParser parser = factory.newPullParser();
  9.  
  10.                     // XmlPullParser에 XML 데이터와 인코딩 방식을 입력
  11.                     parser.setInput(in, "euc-kr");
  12.  
  13.                     int eventType = parser.getEventType();
  14.                     boolean isItemTag = false;
  15.  
  16.                     while (eventType != XmlPullParser.END_DOCUMENT) {
  17.  
  18.                         if (eventType == XmlPullParser.START_TAG) {
  19.  
  20.                             tagName = parser.getName();
  21.                             if (tagName.equals("answer"))
  22.                                 isItemTag = true;
  23.  
  24.  
  25.                         } else if (eventType == XmlPullParser.TEXT && isItemTag) {
  26.  
  27.                             if (tagName.equals("result")) {
  28.  
  29.                                 result = parser.getText();
  30.                                 resultText.setText(result);
  31.  
  32.                             }
  33.  
  34.                         } else if (eventType == XmlPullParser.END_TAG) {
  35.  
  36.                             tagName = parser.getName();
  37.  
  38.                             if (tagName.equals("answer")) {
  39.                                 // 파싱한 데이터 사용 or 저장
  40.  
  41.                                 isItemTag = false;
  42.  
  43.                             }
  44.                         }
  45.  
  46.                         eventType = parser.next();
  47.                     }
  48.                 } catch (Exception e) {
  49.                     Toast.makeText(login.this, e.toString(), Toast.LENGTH_LONG)
  50.                             .show();
  51.                 }
  52.  
  53.             }


혹시라도 networkonmainthreadexception가 뜨면


아래 소스를 onCreat부분에 삽입


  1. if (android.os.Build.VERSION.SDK_INT > 9) {
  2.     StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()
  3.             .permitAll().build();
  4.     StrictMode.setThreadPolicy(policy);
  5. }


========================================================================================= 13.11.14


코딩 하시다가 import 다 했는데도

XmlPullParser parser = factory.newPullParser();

여기서 에러 나시는 분은 import 문제입니다.


이클립스경우 import 단축키가 있는데, 그거 사용하면 가끔씩 저부분에서 에러 나시니

parser부분만 하나하나 import 해주시기바랍니다.


출처 : http://rainmaker0303.tistory.com/