from JavaScript SAX Based Parser on Ajaxian

Gregory Reimer 씨가 String.replace()를 이용해서 SAX 기반 파서를 만들었습니다:
John Resig씨의 블로그에서 찾고 치환은 안하기를 읽고,  이 기술로 JavaScript SAX 파서를 만들어보면 재밌겠다고 생각했습니다. 물론, 여러분이 직접 삽질을 해서 JavaScript SAX 파서를 만들겠다면 말릴 수는 없지만, (제 생각에는) 문자열을 토큰으로 분리하는 부분이 좀 까다로울 것입니다. 하지만, JavaScript RegExp 치환 엔진을 이용해 최적화를 한다면, 토큰 분리엔진 작업은 식은 죽 먹기가 될 수도 있습니다.

그래서 제가 한번 만들어보기로 했습니다. 제가 생각해 낸 것은 제대로 된 XML 파서하고는 거리가 한참 멉니다. 엘리먼트, 텍스트 노드, 문자 엔티티를 다루는 게 전부입니다.  원래는 구현했어야 할 도움이 될만한 에러메시지도 하나도 없습니다. 한나절이 안걸려서 후다닥 만든거라서 버그가 많을 겁니다. 하지만 422kb 크기의 파일도 쏜살같이 처리합니다.
이렇게 사용하실 수 있습니다:
function doStartTag(name){alert("opening tag: "+name);}
function doEndTag(name){alert("closing tag: "+name);}
function doAttribute(name,val){alert("attribute: "+name+'="'+val+'"');}
function doText(str){
    str=str.normalize();
    if(!str){str='[whitespace]';}
    alert("encountered text node: "+str);
}

클릭하셔서 SAX 파서를 다운로드 받으세요.
Posted by 행복한고니 트랙백 0 : 댓글 0

댓글을 달아 주세요