SAX와 DOM의 차이점

Anonim

SAX vs. DOM

XML 용 단순 API (SAX라고도 함)는 XML 용 직렬 액세스 파서 API입니다 (API를 사용하여 데이터를 얻고 동적으로 생성 된 웹 페이지의 특정 문서 또는 대화 형 내용이 포함 된 웹 페이지) 문서 객체 모델 (DOM이라고도 함)에 대한보다 일반적인 대안 중 하나 역할을합니다.

> DOM은 특정 언어와 완전히 독립적 인 규칙으로, 여러 플랫폼과 호환되는 규칙으로 HTML, XML 및 XHTML 문서의 개체를 나타내고 상호 작용하는 데 사용됩니다. DOM을 사용하면 DOM의 여러 측면을 처리하고 조작 할 수 있습니다.

SAX 구문 분석기는 스트림 p arser (즉, 해당 위치에서 스트리밍되는 텍스트를 가져 와서 분석합니다.) 이벤트 구동 API (특정 환경 내에서 발생하는 이벤트에 종속적 인 API)를 포함합니다. 사용자는 콜백 메소드 (즉, 요청 된 데이터의 소스를 추적하는 메소드)의 수를 정의 할 수 있습니다. 이러한 메소드는 파싱하는 동안 이벤트가 발생할 때 호출됩니다. 파싱하는 동안 발생할 수있는 주요 사건은 XML 테스트 노드, XML 요소 노드, XML 처리 명령 및 XML 주석입니다. 이러한 XML 기능이 발생하면 이벤트가 재생됩니다. 이벤트는 이러한 기능이 끝나면 발생합니다. 따라서 SAX는 단방향 (한 방향으로의 이동을 의미 함)이며 이전에 구문 분석 된 데이터는 구문 분석 작업을 다시 시작하지 않고는 다시 읽을 수 없습니다.

DOM은 문서를 반복적으로 액세스해야하는 응용 프로그램이나 문서가 순서 순서를 벗어나는 경우 가장 적합합니다. 응용 프로그램이 엄격한 순서와 one-pass (파싱 시퀀스를 다시 시작하지 않고 액세스 할 수 없음을 의미)이면 SAX가 작동합니다. 대부분의 웹 브라우저는 HTML 문서를 렌더링 할 목적으로 DOM을 사용하지 않습니다. 그러나 DOM은 웹 페이지와 관련된 모든 것을 동적으로 분석하거나 변경하려는 JavaScript 스크립트의 필수 요소입니다. 본질적으로, DOM은 JavaScript가 포함 된 HTML 페이지 및 브라우저 상태 (즉, 환경 탐색)를 시각화 할 수있는 방법입니다.

요약:

1. SAX는 동적 웹 페이지를위한 직렬 액세스 파서 API입니다. DOM은 언어 또는 언어 의존성이없는 규칙입니다. 2. SAX 파서를 사용하면 콜백 메소드의 수를 제어 할 수 있습니다. DOM은 JavaScript 스크립트가 동적 웹 페이지와 관련된 모든 것을 액세스, 변경 또는 분석 할 수 있도록하기 위해 독립적으로 기능하여 JavaScript가 물리적으로 환경을 탐색 할 수있게합니다.