public void xmlParsing(String uri) {
String category = "", title = "", link = "", description = "";
try {
// XML 데이터를 읽어옴
URL url = new URL("주소");
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) {
/*
* <tag> : START_TAG content : TEXT </tag> : END_TAG
*/
if (eventType == XmlPullParser.START_TAG) {
tagName = parser.getName();
if (tagName.equals("item"))
isItemTag = true;
} else if (eventType == XmlPullParser.TEXT && isItemTag) {
if (tagName.equals("category"))
category = parser.getText();
if (tagName.equals("title"))
title = parser.getText();
if (tagName.equals("link"))
link = parser.getText();
if (tagName.equals("description"))
description = parser.getText();
} else if (eventType == XmlPullParser.END_TAG) {
tagName = parser.getName();
if (tagName.equals("item")) {
// 파싱한 데이터 사용 or 저장
title = "";
category = "";
link = "";
description = "";
isItemTag = false;
}
}
eventType = parser.next();
}
} catch (Exception e) {
Toast.makeText(this, e.toString(), Toast.LENGTH_SHORT).show();
}
}
제목과 같은 오류가 발생할 시에는 작업쓰레드를 따로 만들어야 하는 건가요??
xml을 파싱하는 오픈소스를 가져온건데, 어떤 부분을 따로 돌려야 하는 건가요?ㅠㅠ
아직 초보라 잘 모르겠네요...
위와 같은 오류가 네트워크작업을 메인쓰레드에서 해서 난 오류인지와
어떤 부분들을 작업쓰레드로 돌려야 하는지
알려주시면 감사하겠습니다!