본문 바로가기

JavaScript/XML

XML 파일 읽어오기

반응형

client.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?xml version="1.0" encoding="UTF-8" ?>
 
<고객들>
  <고객>
    <번호>1</번호>
    <이름>홍길동</이름>
    <주소>서울시</주소>
    <방문>2001/12/04</방문>
  </고객>
  <고객>
    <번호>2</번호>
    <이름>일지매</이름>
    <주소>부산시</주소>
    <방문>2004/2/24</방문>
  </고객>
  <고객>
    <번호>3</번호>
    <이름>성춘향</이름>
    <주소>남원시</주소>
    <방문>2011/07/14</방문>
  </고객>
 
 
</고객들>
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white">cs

 

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
</head>

<body>
    <p id="demo"></p>
    <script>
        var xhttp = new XMLHttpRequest();

        xhttp.onreadystatechange = function() {
            //처리가 끝나고 읽는데 성공
            if (this.readyState === 4 && this.status === 200) {
                //    nodeValFunc(this);
                //nodeNameFunc(this);
                childNodeFunc(this);
            }
        };

        xhttp.open("GET", "client.xml", true);
        xhttp.send();

        function nodeValFunc(xml) {
            var num, name;
            var txt, ntxt, xmlDoc;

            txt = ntxt = "";
            xmlDoc = xml.responseXML;

            num = xmlDoc.getElementsByTagName("번호");
            name = xmlDoc.getElementsByTagName("이름");
            alert(num.length);

            for (i = 0; i < num.length; i++) {
                txt += num[i].childNodes[0].nodeValue + "<br>";
                ntxt += name[i].childNodes[0].nodeValue + "<br>";
            }

            document.getElementById("demo").innerHTML = txt + ntxt;


            //alert(xmlDoc);
        }

        function nodeNameFunc(xml) {
            var arr, xmlDoc, txt;

            txt = "";
            xmlDoc = xml.responseXML;

            arr = xmlDoc.documentElement.childNodes;

            for (i = 0; i < arr.length; i++) {
                if (arr[i].nodeType == 1) {
                    txt += arr[i].nodeName + "<br>";
                }
            }
            document.getElementById("demo").innerHTML = txt;
        }

        function childNodeFunc(xml) {
            var arr, xmlDoc, txt;
            txt = "";

            xmlDoc = xml.responseXML;
            arr = xmlDoc.getElementsByTagName("고객")[0];
            var len = arr.childNodes.length;
            //alert(len);

            var fchild = arr.firstChild;

            for (i = 0; i < len; i++) {
                if (fchild.nodeType === 1) {
                    txt += i + " " + fchild.nodeName + "<br>";
                }
                fchild = fchild.nextSibling;
            }
            document.getElementById("demo").innerHTML = txt;
        }
    </script>
</body>

</html>

 

반응형

'JavaScript > XML' 카테고리의 다른 글

XML파일 값을 읽어서 테이블에 표시하기  (0) 2020.01.15
XML 코드 정리  (0) 2020.01.15