XML문서를 파싱하다가 참조하시라고 요약해 보았습니다.
예제는 Android Reference를 참조하시면 될 것 같네요.
이번에 회색님이 다른 댓글에서 추천해주신 Pull Parser를 사용해 보았는데,
무척 좋더군요.
---------------------------------------------------------------------------------------------------------------------
[DOM(Document Object Model) Parser]
특징 : Element를 모두 Tree 구조로 메모리에 넣어 두고 사용
장점 : 메모리에 Tree구조로 정보가 들어있기 때문에 한번 파싱해 두면
아무때나 얻고 싶은 Element에 대한 정보를 얻을 수 있다.
단점 : 메모리의 소모가 다른 방법보다 많음
[SAX(Simple API for XML) Parser]
특징 : 이벤트 기반의 파서로 문서의 시작과 끝, Element의 시작과 끝, Element의 내용 등
Element Tag의 이름에 따라 각각을 처리하는 메소드를 두어 파싱함
장점 : 라인by라인으로 파싱하기 때문에 파싱하는데 일정한(적은) 메모리만 소요됨
단점 : 파싱시 그냥 지나갔던 Element의 정보를 얻고 싶으면 다시 파싱해야함.
[Pull Parser]
특징 : SAX와 같이 이벤트 기반의 파서이지만, SAX와 달리 문서에 대한 모든 파싱을 하지 않고도
특정 부분까지의 파싱내용을 활용할 수 있음.(
장점 : 원하는 부분까지만 파싱할 수 있는 장점.
단점 : SAX의 단점 + SAX보다 약간느림.
예제는 Android Reference를 참조하시면 될 것 같네요.
이번에 회색님이 다른 댓글에서 추천해주신 Pull Parser를 사용해 보았는데,
무척 좋더군요.
---------------------------------------------------------------------------------------------------------------------
[DOM(Document Object Model) Parser]
특징 : Element를 모두 Tree 구조로 메모리에 넣어 두고 사용
장점 : 메모리에 Tree구조로 정보가 들어있기 때문에 한번 파싱해 두면
아무때나 얻고 싶은 Element에 대한 정보를 얻을 수 있다.
단점 : 메모리의 소모가 다른 방법보다 많음
[SAX(Simple API for XML) Parser]
특징 : 이벤트 기반의 파서로 문서의 시작과 끝, Element의 시작과 끝, Element의 내용 등
Element Tag의 이름에 따라 각각을 처리하는 메소드를 두어 파싱함
장점 : 라인by라인으로 파싱하기 때문에 파싱하는데 일정한(적은) 메모리만 소요됨
단점 : 파싱시 그냥 지나갔던 Element의 정보를 얻고 싶으면 다시 파싱해야함.
[Pull Parser]
특징 : SAX와 같이 이벤트 기반의 파서이지만, SAX와 달리 문서에 대한 모든 파싱을 하지 않고도
특정 부분까지의 파싱내용을 활용할 수 있음.(
parser.next()를 해줘야 함)
장점 : 원하는 부분까지만 파싱할 수 있는 장점.
단점 : SAX의 단점 + SAX보다 약간느림.