반응형

사용자 삽입 이미지
대부분의 브라우저는 내부적으로 XML 파서(Parser)를 가지고 있어 XML 을 읽고 쓰기가 가능하다.
파서는 XML 을 JavaScript 에서 접근 가능한 객체로 만들어준다.
아래 있는 예제는 플렛폼이나 브라우저의 상관없이 최근나온 브라우저에서 모두 작동한다.

예제)
XML 파일을 로드(Load)하고 분석(Parse) 하기 : http://www.w3schools.com/xml/tryit.asp?filename=tryxml_parsertest
XML String 을 로드하고 분석하기 : http://www.w3schools.com/xml/tryit.asp?filename=tryxml_parsertest2

1) XML 파싱(Parsing)

파서(Parser) 는 XML 을 메모리로 읽어들여 자바스크핍트(java Script) 로 접근가능한 XML DOM 객체(Object) 로 변환시킨다. XML DOM 관련해서는 9번에서 다룰 예정이므로 여기선 패수~

Microsoft 사의 XML 파서와 다른 브라우저들의 파서와 다른점이 있다면 Microsoft 사의 파서는 XML 파일과 XML String(텍스트: text) 둘다 로드 시킬 수 있도록 지원이 되지만 다른 브라우저에서는 각각의 다른 파서를 사용한다. 하지만, 모든 파서들은 XML 의 Tree, 접근, 삽입 그리고 삭제 노드들(node: Element) 와 attribute 오갈수 있는 함수를 가지고 있다. (ㅡ,.ㅡ 써놓고도 뭔소리인지 원..)

참고로 XML 파싱을 이야기 할때는 XML Element 보다는 "노드(Node)" 라는 표현을 많이 쓴다.

2) Microsoft 사의 XML 파서로 XML 로드 하기

Internet Explorer 5.0 이상되는 브라우저에 기본적으로 탑재되어 있으며 다음 Javascript  부분에서 XML 문서("note.xml") 을 파서로 로드 시킨다.

var xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async="false";
xmlDoc.load("note.xml");

예제설명:
    a) 첫줄을 보면 비어있는 Microsoft XML 문서 객체를 만들어낸다.
    b) 그담은 전체적으로 문서가 읽어드리기전에 파서가 스크립트 실행을 하지 않도록 비동기로딩을 꺼버린다.
    c) 마지막은 "note.xml" 이라는 XML 문서를 로드하라고 파서에게 전달하는 부분이다.

var parser=new DOMParser();
var doc=parser.parseFromString(txt,"text/xml");

예제설명:
    a) 첫줄은 비어있는 XML 문서 객체를 만들어낸다.
    b) txt 라는 string 을 로드하도록 파서에게 전달한다.

인터넷탐색기(Internet explorer) 는 loadXML() 메서드를 사용하여 XML 스트링을 분석(Parse) 한다. 다른 브라우저들은 DOMParser 객체를 사용한다. (ㅡ,.ㅡa 뭔소린지 정말 모르겠지만 이해가 되겠징..)

3) 도메인 간 접근
보안의 이유로 요즘 나오는 브라우저들은 도메인간의 접근을 막고 있다. 이 말은 만약 웹페이지와 XML 파일이 모두 읽어져야 한다면 하나의 서버에서 둘다 있어야 한다는 뜻. (글쿤)

4) XML DOM

9번에서 아마 접하게 될듯 싶다. XML 문서 객체(XML DOM) 에 접근하여 데이터를 읽어 드리는 방법을 알아보도록 하겠다.

<잡다>
XML 공부를 하면서 느낀점.. 뭐 봐도 html 과 다른건 잘 모르겠지만, asp.net 강좌를 보면 web.config 파일이 XML 로 되어 있는듯.. 싶다.. 뭐 정확한건 나중에 보면 알겠지 모... asp 강좌는 6개 봤다. 이궁.. 눈아프고 머리아프당.

반응형

'초짜 IT보이 서바이벌 스토리 > XML' 카테고리의 다른 글

7. XML - 기타등등 (기초부분의 마지막)  (0) 2008.07.10
6. XML Attributes  (0) 2008.07.09
5. XML ELEMENT  (0) 2008.07.06
4. XML 문법  (0) 2008.07.06
3. XML Tree  (0) 2008.07.06

+ Recent posts