<html><head><meta http-equiv="Content-Type" content="text/html; charset=euc-kr">
<title>DOM을 이용한 XML의 응답결과 파싱</title>
<script language="JavaScript">
<!--
var xmlHttp;
var rquestType = "“;
// XMLHttpRequest 객체를 생성한다.
function createXMLHttpRequest(){
if (window.ActiveXObject) {
try { xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e1) {
xmlHttp = null;
}
}
} else if (window.XMLHttpRequest) {
try{
xmlHttp = new XMLHttpRequest()
} catch(e1) {
xmlHttp = null
}
} else {
xmlHttp = null;
}
if (xmlHttp == null) alert("지원할 수 없는 브라우저!");
}
// 요청타입 변수를 설정하고, 콜백 함수를 붙이고 요청을 수행한다.
function startRequest(requestedList) {
requestType = requestedList;
createXMLHttpRequest();
xmlHttp.onreadystatechange = handleStateChange;
xmlHttp.open("GET", "parseXML.xml", true);
xmlHttp.send(null);
}
// 응답을 처리하는 콜백함수이다. 요청시 설정했던 요청 타입에 따라 응답을 처리한다.
function handleStateChange() {
if(xmlHttp.readyState == 4) {
if(xmlHttp.status == 200) {
if(requestType == "영업부") {
listGeneralDepartment();
} else if(requestType == "all") {
listAllDepartment();
}
}
}
}
// 요청타입이 "영업부" 일 경우 응답을 처리한다.
function listGeneralDepartment() {
var xmlDoc = xmlHttp.responseXML;
var generalNode = xmlDoc.getElementsByTagName("영업부")[0];
var title = generalNode.getAttribute("title");
var staff = generalNode.getElementsByTagName("사원");
outputList(title, staff);
}
// 요청타입이 "all"일 경우 응답을 처리한다.
function listAllDepartment() {
var xmlDoc = xmlHttp.responseXML;
var allStaff = xmlDoc.getElementsByTagName("사원");
outputList("모든 사원", allStaff);
}
// 공통 처리함수이다.
function outputList(title, staff) {
var out = title;
var currentState = null;
for(var i = 0; i < staff.length; i++) {
currentStaff = staff[i];
out = out + "\n- " + currentStaff.childNodes[0].nodeValue;
}
alert(out);
}
//-->
</script>
</head>
<body>
<h3>DOM을 이용한 XML 응답 파싱</h3>
<br/>
<form action="#">
<input type="button" value="모든 부서원보기" onclick="startRequest('all');"/>
<br/><br/>
<input type="button" value="영업부 사원보기" onclick="startRequest('영업부');"/>
</form>
<div id="results"></div>
</body>
</html>
[parseXML.xml]
<?xml version="1.0" encoding="utf-8"?>
<부서들>
<총무부 title="총무부">
<사원>김길동</사원>
<사원>이길동</사원>
</총무부>
<영업부 title="영업부">
<사원>박길동</사원>
<사원>최길동</사원>
</영업부>
</부서들>
'자바 > JAVA...Spring' 카테고리의 다른 글
Spring 3.2 & MyBatis] 단순한 파일 업로드 (0) | 2016.01.05 |
---|---|
컨텐츠를 동적으로 생성할 수 있게 해주는 W3C DOM 의 속성과 메소드 (0) | 2016.01.04 |
XML 다큐먼트를 다루는 유용한 DOM 요소의 메소드 (0) | 2016.01.04 |
XML 문서를 처리하기 위한 DOM 요소의 속성 (0) | 2015.12.30 |
DOM (Document Object Model) (0) | 2015.12.30 |