Dom 구조 이용한 XML 처리 예제

function processXML(){//XML문서객체 구조 처리 메소드

var xmlDoc = xhrObject.responseXML; //서버로부터의 응답을 XML문서 객체로 받음

var subject=””;

var trTag =””

var tdTag =””


var subjects=xmlDoc.getElementsByTagName(“subject”); //응답받은 XML문서 객체에서 subject엘리먼트를 모두 찾아서 배열로 리턴


for(var i=0;i

trTag = document.createElement(“tr”); //tr엘리먼트 생성

subject= subjects[i];//subject엘리먼트배열로부터 subject엘리먼트를 하나 받아서 subject변수에 저장

 

var child = subject.childNodes; //subject엘리먼트의 자식엘리먼트를 배열로 리턴


for(var j=0; j

tdTag = document.createElement(“td”); //td엘리먼트 생성

 

var text = document.createTextNode(child[j].firstChild.nodeValue);//텍스트 엘리먼트 text를 생성

//child[j].firstChild.nodeValue은 특정 엘리먼트의 노드값(내용)을 얻어낼때 사용

tdTag.appendChild(text); //td엘리먼트에 텍스트 엘리먼트 text를 자식엘리먼트로 추가

trTag.appendChild(tdTag);//tr엘리먼트에 td엘리먼트를 자식엘리먼트로 추가

}

 

document.getElementById(“resultDisplay”).appendChild(trTag); //id 속성의 값이 “resultDisplay”인 엘리먼트에 tr엘리먼트를 자식엘리먼트로 추가

}

}

 

즉 태그단위로 트리를 생성, 삭제하여 xml을 컨버팅.

허허.. 언제부터 html이 이렇게 구조적으로 되었단 말인가, 정말.. 98년 내가 처음 자바스크립트를 만졌을 때와는 너무나도 달라졌구나….

 

<참고> XML문서

 




j101

JAVA

801



j103

JSP

503



a019

Ajax

505



c001

C

402



c002

C++

403