자바 스크립트 내에서 XML 노드 Value값를 가져오는 방법이다.
처음에는 아래와 같이 jQuery를 이용하여 처리하고자 진행하였다.
var xml = '';
$(xml).find("id").each(function () {
   var id = $(this).find("id").text();
});
그러나 XML 노드에 CDATA 타입으로 지정되어 있으면 항상 ''로 리턴되어 사용할 수 없었다.
좀 더 테스트 해보니, Dom Parser 처리 후 조회해보니 값을 제대로 가져온다.ㅎ
var xml = '';

var xmlDoc;
if (window.ActiveXObject) {
    // IE일 경우
    xmlDoc = new ActiveXObject('Microsoft.XMLDOM');
    xmlDoc.async = false;
    xmlDoc.loadXML(xml);
}
else if (window.XMLHttpRequest) {
    //Firefox, Netscape일 경우
    var xmlParser = new DOMParser();
    xmlDoc = xmlParser.parseFromString(xml, 'text/xml');
}
else {
    xmlDoc = null;
}

if (xmlDoc != null) {
    // #1. jQuery 방식 
    $(xmlDoc).find("To").each(function () {
        var id = $(this).find("dn").text();
    });

    // #2. Script 방식
    var nodes = xmlDoc.selectNodes("person/to");
    for (i = 0; i < nodes.length; i++) {
        var id = nodes[i].selectSingleNode("id").text;
    }
}

+ Recent posts