SPRING :: NOTE

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

Development Language/JAVA · ANDROID

[android] XmlPullParser 간단한 사용법

RAYZIE 2016. 6. 10. 14:45
반응형
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 해주시기바랍니다.


반응형
Comments