xmlDom 을 편하게 사용하기 위한 javascript 함수화..ㅋ
<?xml version='1.0' encoding='utf-8'?> <parts> <part> <name>송토리</name> <addr>서울시 광진구 화양동</addr> </part> <part> <name>장동건</name> <addr>우리들의 천국</addr> </part> <part> <name>서태웅</name> <addr>슬램덩크시 북산고</addr> </part> <part> <name>원빈</name> <addr>하늘시 신계구 왕성</addr> </part> <ADMIN_GRADE code='ADM' text='관리자'/> <ADMIN_GRADE code='MAG' text='매니저'/> <ADMIN_GRADE code='GUE' text='게스트'/> </parts>
위에는 XML 파일.
아래와 같이 하면됨.
var xmlDoc; //xml DOM function getXmlObj() { var xmlhttp = null; // Mozilla/Safari if (window.XMLHttpRequest) { xmlhttp = new XMLHttpRequest(); } else if (window.ActiveXObject) {// IE xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } return xmlhttp; } function getXMLDom(pUrl,pOption,pSearchValue) { var xmlhttp = getXmlObj(); var templateStr = null; var pAsync = false; if (pOption == "TRUE") { pAsync = true; } if (pOption == "POST") { xmlhttp.open("POST",pUrl,pAsync); xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); } else { xmlhttp.open("GET",pUrl,pAsync); } xmlhttp.onreadystatechange = function () { if(xmlhttp.readyState == "4") { xmlDoc = xmlhttp.responseXML; } } xmlhttp.send(); return xmlDoc; } function getDomLength(pName,pDom) { try { return pDom.getElementsByTagName(pName).length; } catch (e) { return xmlDoc.getElementsByTagName(pName).length; } } function getValue(pName,pIndex,pAttr) { if (typeof pIndex == "undefined" || pIndex =="") { pIndex = 0; } x = xmlDoc.getElementsByTagName(pName); if (typeof pAttr == "undefined" || pAttr =="") { if(x[pIndex].hasChildNodes()) { v = x[pIndex].childNodes[0].nodeValue; } else { v = ""; } } else { v = x[pIndex].getAttribute(pAttr); } return v; } function getXMLText(pCode,pValue) { var xDom = getXMLDom('code_test.xml'); var cnt = getDomLength(pCode,xDom); var strHTML = "" ; for(var i=0;i<cnt;i++) { if(getValue(pCode,i,"code") == pValue) strHTML = getValue(pCode,i,"text"); } return strHTML; }
사용법
- nodeValue 로 불러올때..
var doc = getXMLDom('code_test.xml'); var cnt = getDomLength("part"); var txt = ""; for(var i=0; i<cnt; i++) { txt = txt+getValue("name",i); } document.getElementById("myDiv").innerHTML=txt;
- getAttribute로 불러올때.
var doc = getXMLDom('code_test.xml'); var v = getXMLText("ADMIN_GRADE","code"); document.getElementById("myDiv2").innerHTML=v;
설명은 부족하지만 소스만 보면 알수 있습니다.
익스,크롬,파폭등 다 잘 작동됩니다.
제가 이미지 업로드 하면 파일 타입으 ... |
감사합니다 |
참고하시라고 적어봅니다. 저는 위에 ... |
asp용 소스 부탁드립니다. 외부가 아닌 ... |
특정일 선택막기에서 for문이랑 if($. ... |
워드프레스를 시작한지 어언 6일... ... |
이미지 사이즈가 계속 0으로 나와서 애 ... |
감사합니다! |
음.. 메일로 보내 드릴게요 |
Comment Write
Comment List