본문 바로가기

프로그램/javascript

[javascript]xml문자열을 document 시키는 코드

반응형

목적

xml 문자열을 javascript에서 dom object로 변환시킴


내용

ff, 크롬, 사파리는 DOMParser 를 사용

ie는 ActiveXObject 의 Microsoft.XMLDOM 을 사용


소스

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">

<title>XML 문자열을 parse 한다.</title>

<script type="text/javascript">

var xmlStr="";

xmlStr+="<books>";

xmlStr+=" <book>";

xmlStr+=" <name>은교</name>";

xmlStr+=" <author>박범신</author>";

xmlStr+=" </book>";

xmlStr+=" <book>";

xmlStr+=" <name>인간관계론</name>";

xmlStr+=" <author>카네기</author>";

xmlStr+=" </book>";

xmlStr+="</books>";

//

//xmlhttprequest를 이용하여 xml을 처리하는 방법

//크롬이랑 사파리에서 테스트 해보는데 안됨.ㅠㅠ 로컬호스트 라서 그런듯 하기도 하고... 

//

var parseXML2=function() {

//safari 용이라고 함

var url="data:text/xml;charset=utf-8,"+encodeURIComponent(xmlStr);

var request=new XMLHttpRequest();

request.open("GET", url, false);

request.send(null);

var xmlDoc=request.responseXML;

alert(xmlDoc);

alert(xmlDoc.documentElement.tagName);

};

//일반적인 xml처리방법

var parseXML=function() {

var xmlDoc, parser;

if(window.DOMParser) { //ff, 크롬, 사파리 확인

alert('DOMParser');

parser=new DOMParser();

xmlDoc=parser.parseFromString(xmlStr, "text/xml"); //application/xml 이랑 차이 없을듯 함

} else if(ActiveXObject) { //ie

alert('ActiveXObject');

xmlDoc=new ActiveXObject('Microsoft.XMLDOM');

xmlDoc.async=false;

xmlDoc.loadXML(xmlStr);

}

alert(xmlDoc.documentElement.tagName);


//document.getElementById('output').appendChild(xmlDoc.documentElement);

};

window.onload=function() {

document.getElementById('btnProc').onclick=parseXML;

document.getElementById('btnProc2').onclick=parseXML2;

};

</script>

</head>

<body>

<h1>XML 문자열을 DOM object로 변환</h1>

<ul>

<li><input id="btnProc" type="button" value="Object로 변환"></li>

<li><input id="btnProc2" type="button" value="Object로 변환2"> => 안됨</li>

</ul>

<div id="output">

</div>

</body>

</html>


참고url

http://www.w3schools.com/dom/dom_parser.asp