목적
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