스프링노트

[android] XmlPullParser 간단한 사용법 본문

DEVELOPMENT/ANDROID

[android] XmlPullParser 간단한 사용법

RAYZIE 2013. 11. 4. 12:10

try {

// XML 데이터를 읽어옴

URL url = new URL("불러올 XML 주소");

InputStream in = url.openStream();


XmlPullParserFactory factory = XmlPullParserFactory

.newInstance();

XmlPullParser parser = factory.newPullParser();


// XmlPullParser에 XML 데이터와 인코딩 방식을 입력

parser.setInput(in, "euc-kr");


int eventType = parser.getEventType();

boolean isItemTag = false;


while (eventType != XmlPullParser.END_DOCUMENT) {


if (eventType == XmlPullParser.START_TAG) {


tagName = parser.getName();

if (tagName.equals("answer"))

isItemTag = true;


} else if (eventType == XmlPullParser.TEXT && isItemTag) {


if (tagName.equals("result")) {


result = parser.getText();

resultText.setText(result);


}


} else if (eventType == XmlPullParser.END_TAG) {


tagName = parser.getName();


if (tagName.equals("answer")) {

// 파싱한 데이터 사용 or 저장


isItemTag = false;


}

}


eventType = parser.next();

}

} catch (Exception e) {

Toast.makeText(login.this, e.toString(), Toast.LENGTH_LONG)

.show();

}


}


혹시라도 networkonmainthreadexception가 뜨면


아래 소스를 onCreat부분에 삽입



if (android.os.Build.VERSION.SDK_INT > 9) {

StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()

.permitAll().build();

StrictMode.setThreadPolicy(policy);

}


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


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

XmlPullParser parser = factory.newPullParser();

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


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

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


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