Lucky Dog

[Java] SAX parser 본문

Java

[Java] SAX parser

Poohya 2013. 6. 10. 00:43

Simple API for XML (SAX)는 XML문서를 애플리케이션에서 사용하기 위한 API이다.

SAX는 XML 파일을 해석하기 위해 DOM 대신 사용된다. 이름을 보면 알 수 있다시피 SAX는 DOM에 비해 단순한 인터페이스를 갖고 있으며, 처리해야할 파일이 많거나 큰 경우에 적합하다. 그러나, 데이터 내용을 조작할 수 있는 기능은 상대적으로 적다고 볼 수 있다.

SAX는 이벤트 중심의 인터페이스이다. 프로그래머가 일어날 수 있는 이벤트를 설정해 놓으면, SAX는 그 이벤트가 일어났을 때 제어권을 가지고 상황을 처리한다. SAX는 직접 XML 파서와 함께 일한다. 그러므로 배포되는 XML 파서와 함께 배포되는데 예를 들어서 Apache의 Xerces도 SAX 클래스를 포함하고 있다.

1. SAX parser

파서팩토리 인스턴스->SAX파서 객체->XML 리더 -> 핸들러등록 -> inputstream 이용 파싱

URL url = new URL("http://url...");

InputStream is = url.openStream();                     

SAXParserFactory saxFactory = SAXParserFactory.newInstance();

SAXParser parser = saxFactory.newSAXParser();

XMLReader reader = parser.getXMLReader();

reader.setContentHandler(new SAXHandler());

reader.parse(new InputSource(is));

2. 핸들러

public class SAXHandler extends DefaultHandler

  • startDocument() : 문서 시작

  • startElement() : Element 시작

  • characters() : 문자열 정보

  • endElement() : Element 끝

  • endDocument() : 문서 끝

TAG 발견될 때마다 위 메소드들 호출

Comments