SooBlending

[XML] DOM 파싱 SAX 파싱 차이점 본문

Programming/XML

[XML] DOM 파싱 SAX 파싱 차이점

블랜더 2022. 11. 24. 20:07

 

DOM ( Document Object Model ) 파싱

 : 메모리에 모두 로드를 한 후에 파싱한다.

 (장점) 메모리에 모두 로드 되어 있기 때문에 노드의 검색, 수정 등이 빠르고 용이하다.

 (단점) 대용량의 데이터를 파싱할 경우 메모리 문제가 발생 할 수 있다.

 

SAX ( Simple API for XML ) 파싱

 : 라인을 하나씩 순차적으로 읽으며 파싱한다.

 (장점) 메모리 사용량이 적고 단순히 읽을 때 속도가 빠르다.

 (단점) 발생한 이벤트를 활용만 하는 것이기 때문에 노드의 수정이 어렵다.

 

각 각의 상황에 맞게 잘 활용하여야 한다.

 

예를 들어, 단순히 xml 데이터를 변수에 담거나 특정 config만 활용할 때에는 SAX 파싱을 사용한다.

하지만 xml 노드의 검색이나 변경이 필요한 경우에는 DOM 파싱을 사용한다.

 

 

DOM 파싱 Java 예시

File file = new File ("sample.xml");
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(file);

doc.getDocumentElement().nomalize();

NodeList nodelist = doc.getElementsByTagName("name"); // name 태그를 검색

 

SAX 파싱 Java 예시

File file = new File("sample.xml");
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser parser = factory.newSAXParser();

parser.parse(file, 따로 만들어놓은 ParserHandler Class);

'Programming > XML' 카테고리의 다른 글

[XML] 개념 및 기본 문법  (0) 2017.11.30
Comments