string 형태의 xml text를  xml로 parsing하는 기본적인 예제이다.

 

 

 

<script>
 
var txt = 
'<rss>'
  +'<item>'
      +'<name>이름아무거나</name>'
      +'<age>26</age>'
  +'</item>'
+'</rss>';
 
 
parser=new DOMParser();
 
   xmlDoc=parser.parseFromString(txt,"text/xml");
 
   // 특정 테그를 기준으로 변수에 담는다
   var xml = xmlDoc.getElementsByTagName('rss');
 
// getElementsByTagName : 태그 호출
// childNodes : 자식 노드
// nodeValue : 해당 노드의 값(text)
var name = xml[0].getElementsByTagName('item')[0].getElementsByTagName('name')[0].childNodes[0].nodeValue;
 
alert(name);
 
</script>
cs

 

위 방법은 java에서 URLConnection을 통해서 xml정보들을 가져와서

txt 변수에 넣어주고 스크립트로 xml 파싱을 하기 위해서 작성되었다.

( URLConnection : http://cofs.tistory.com/4 )

 

 

파싱하는데는 여러가지 방법이 있다.

브라우저 별로도 각기 다른 방법들이 있는데

현재 ie 11, chrome(크롬)은 위의 소스로 구분없이 사용이 가능한걸로 판단된다.

 

xml파일을 파싱하는 방법도 위와 크게 다르지 않다. 

 

 

 

 

 

도움이 되셨다면 공감을 부탁드립니다. ^^ 

by 개발자 CofS 2016.01.05 11:46
  • dd 2017.11.29 05:25 ADDR EDIT/DEL REPLY

    저는 공공데이터에서 제공하는 도시코드api를 사용하려는데요
    문자열 자르기 이전에 xml을 가져와서 그대로 뿌려주는 코드를 작성했는데
    이상하게 작동을 안합니다.
    한번 봐주실 수 있을까요?


    <Html>
    <head></head>
    <script>
    function searchBusLaneAJAX() {
    var xhr = new XMLHttpRequest();
    var url = 'http://openapi.tago.go.kr/openapi/service/ArvlInfoInqireService/getCtyCodeList?serviceKey=A2C6WKuZwdEx08OODGH2clmfQCkFMypGQMfr5pt4M1EXiVfgzdi1Ek%2Ff4Uu1026jycb2MSyg9LEyCxrfhbENvg%3D%3D';
    xhr.open('GET', url, true);
    xhr.send();
    document.getElementById("resultDiv").innerHTML = xhr.responseText;
    }
    </script>
    <body>
    <div>
    <button onclick="searchBusLaneAJAX();">click</button>
    </div>
    <div id="resultDiv">
    </div>
    </body>
    </Html>

    • Favicon of https://cofs.tistory.com BlogIcon 개발자 CofS 2017.11.29 09:18 신고 EDIT/DEL

      XMLHttpRequest 는 비동기로 사용해야 합니다.

      xhr.open('GET', url, true);

      xhr.onreadystatechange = function (aEvt) {
      if (xhr.readyState == 4) {
      if(xhr.status == 200)
      document.getElementById("resultDiv").innerHTML = xhr.responseText;
      else
      alert("Error loading page");
      }
      };
      xhr.send();

      이런식으로 작성해 보시기 바래요 ㅎㅎ