DOM (Document Object Model)의 특징
- 객체 모델 기반 API
- 노드(node) 단위로 데이터 처리
- 문서의 구조 정보와 내용을 객체로 이용
- 메모리 적재방식
SAX (Simple API for XML)의 특징
- 이벤트 기반 API
- SAX Parser는 XML 태그 시작과 끝에서 이벤트 생성
- XML 문서를 하나의 긴 문자열로 간주
- 라인 인터프리트방식
DOM 방식은 XML의 모든 내용을 메모리에 올리고 필요한 요소를 찾는다. 각 요소들은 계층적으로 파싱되어 읽혀지고 때에 따라 검색시 같은 노드가 여러번 읽혀질 수도 있다. 노드를 수정하는데 이용하는 것이 적합하며 빠른 처리를 요하거나 적은 메모리 환경상에서는 적합하지 않다.
SAX방식은 XML을 단순히 하나의 문자열로 취급한다. 따라서 어느 요소를 찾을때 처음부터 탐색하기 된다. 문서 일부의 임의 접근은 불가능하지만 적은 메모리나 빠른 처리를 요하는 경우 적합하다고 할 수 있다. 대부분의 모던 프로그래밍 API에서는 DOM방식을 지원하고 있는 것 같다.
DOM 과 SAX에 대한 또 다는 설명 (http://www.c-sharpcorner.com/UploadFile/d49768/difference-between-dom-and-sax-parser-in-iphone/)
DOM (Document Object Model)
- Stores the entire XML document into memory before processing
- Occupies more memory
- We can insert or delete nodes
- Traverse in any direction
SAX (Simple API for XML)
- Parses node by node
- Doesn't store the XML in memory
- We can not insert or delete a node
- Top to bottom traversing