반응형
안녕하세요 푸민입니다.
이번에는 안드로이드에서 제공하는 Xml 파서들에 대해서 알아보겠습니다.
먼저 XML 은 다들 아시겠지만 Exchange Markup Language 입니다. 즉 교환을 위한 마크업 언어인것이죠!
https://en.wikipedia.org/wiki/XML - 위키
Xml 방식중에서 오늘은 SAX 방식에 대해서 알아본 텐데요. SAX는 Xml 문서에서 각 태그들의 시작과 끝, 그리고 텍스트를 실행할때 각각 이벤트가 불리는데 이 이벤트로 데이터를 제어하는 것입니다.
public class SimpleXmlPullApp
{
public static void main (String args[])
throws XmlPullParserException, IOException
{
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
factory.setNamespaceAware(true);
XmlPullParser xpp = factory.newPullParser();
xpp.setInput( new StringReader ( "<foo>Hello World!</foo>" ) );
int eventType = xpp.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
if(eventType == XmlPullParser.START_DOCUMENT) {
System.out.println("Start document");
} else if(eventType == XmlPullParser.START_TAG) {
System.out.println("Start tag "+xpp.getName());
} else if(eventType == XmlPullParser.END_TAG) {
System.out.println("End tag "+xpp.getName());
} else if(eventType == XmlPullParser.TEXT) {
System.out.println("Text "+xpp.getText());
}
eventType = xpp.next();
}
System.out.println("End document");
}
}
먼저 XmlPullParserFactory 를 생성합니다. 이 클래스를 이용해서 XmlPullParser 를 생성합니다. 그 다음에 setInput() 을 이용해서 Xml 을 문자열로 변환한 값을 설정합니다. 그리고는 while 을 이용하여 내용을 하나씩 들고 오면 됩니다!
while 의 조건문에서 각 SAX 이벤트를 확인할수 있습니다.
XmlPullParser.END_DOCUMENT : Xml 문서의 끝
XmlPullParser.START_DOCUMENT : Xml 문서의 시작
XmlPullParser.START_TAG : 태그의 시작
XmlPullParser.END_TAG : 태그의 끝
XmlPullParser.TEXT : 태그 사이의 텍스트
이렇게 구분해서 사용하면 SAX 방식을 이용한 Xml 파서를 사용할수 있습니다!
반응형
'Development > Android' 카테고리의 다른 글
[안드로이드] Andorid Json 파싱 (0) | 2015.09.30 |
---|---|
[안드로이드][Xml] Xml 파싱 DOM (0) | 2015.09.29 |
[안드로이드] 시간 카운트 하기 (0) | 2015.09.25 |
[안드로이드] Android ListView 속성값을 파헤쳐보자! (0) | 2015.09.24 |
[안드로이드] Thread 메소드 동기화 (0) | 2015.09.23 |
댓글