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<subjects.length;i++){ //subject엘리먼트 개수만큼 반복
trTag = document.createElement(“tr”); //tr엘리먼트 생성
subject= subjects[i];//subject엘리먼트배열로부터 subject엘리먼트를 하나 받아서 subject변수에 저장
var child = subject.childNodes; //subject엘리먼트의 자식엘리먼트를 배열로 리턴
for(var j=0; j<child.length;j++){ //subject엘리먼트의 자식엘리먼트 개수만큼 반복
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문서
<?xml version=”1.0″ encoding=”utf-8″?>
<curriculum>
<subject>
<codeNumber>j101</codeNumber>
<titleName>JAVA</titleName>
<roomNumber>801</roomNumber>
</subject>
<subject>
<codeNumber>j103</codeNumber>
<titleName>JSP</titleName>
<roomNumber>503</roomNumber>
</subject>
<subject>
<codeNumber>a019</codeNumber>
<titleName>Ajax</titleName>
<roomNumber>505</roomNumber>
</subject>
<subject>
<codeNumber>c001</codeNumber>
<titleName>C</titleName>
<roomNumber>402</roomNumber>
</subject>
<subject>
<codeNumber>c002</codeNumber>
<titleName>C++</titleName>
<roomNumber>403</roomNumber>
</subject>
</curriculum>