'XMLDOM'에 해당되는 글 1건

  1. 2007.03.28 XMLDOM 이용하기

IE에서 간단히 Javascript로 XML 데이터 불러오고 사용하는 방법으로 난 Microsoft의 XMLDOM ActiveX를 이용한다.

우선 Mucrosoft.XMLDOM  객체 생성해보자.

<script>
var XmlDOM = new ActiveXObject("Microsoft.XMLDOM");
XmlDOM.async = false;
</script>

음.. async를 false로 하는 이유는 웹페이지에서 데이터 가져와서 뿌려줄때 async, 즉 비동기화 할 필요가 없기 때문이고 비동기화로 할 때 생기는 문제를 감당할 자신이 없어서이다.
자 일단 XmlDOM 이라는 객체는 생성했다.
그럼 원하는 xml 데이터를 가져와야 한다.
XmlDOM 객체에서는 load 라는 method로 xml 데이터를 가져올 수 있다.


<script>
XmlDOM.load(http://www.nzeo.com/test.php);
</script>

뭐 이렇게 하면 일단 읽어온다.

예를 들어 xml 데이터가 다음과 같이 있다고 하자.

<ROOT>
 <DATA1>1번데이터</DATA1>
 <DATA2>2번데이터</DATA2>
</ROOT>

뭐... 굳이 sample에 신경쓰지 말고...


그럼 이 DATA1, DATA2를 javascript에서 사용할 수 있게 변수에 차곡 차곡 담아보자.

<script>
 var data1 = XmlDOM.selectNodes("/ROOT/DATA1")(0).text;
</script>

이렇게 하면 된다.
XmlDOM 에서 selectNodes 라는 method를 지원한다.
원하는 path를 넣어서 가져오게 하면 된다.
그런데 바로 값을 가져오지는 않는다.
해당 path에 대한 또 하나의 객체를 return한다.
이거 보면 대략 loop도 돌릴 수 있겠고 text value뿐 아니라 다른 값도 가져올 수 있겠구나 하는 생각이 들것이다.
레퍼런스를 찾다가 이래 저래 삽질해서 아래와 같은 코드를 만들었다.


■ XML data
<?xml version="1.0" encoding="KS_C_5601-1987"?>
<ROOT>
 <LIST>
  <TITLE>첫번째 글입니다.</TITLE>
  <AUTHOR>작성자1</AUTHOR>
 </LIST>
 <LIST>
  <TITLE>두번째 글입니다.</TITLE>
  <AUTHOR>작성자2</AUTHOR>
 </LIST>
 <LIST>
  <TITLE>세번째 글입니다.</TITLE>
  <AUTHOR>작성자3</AUTHOR>
 </LIST>
 <LIST>
  <TITLE>네번째 글입니다.</TITLE>
  <AUTHOR>작성자4</AUTHOR>
 </LIST>
 <LIST>
  <TITLE>다섯번째 글입니다.</TITLE>
  <AUTHOR>작성자5</AUTHOR>
 </LIST>
</ROOT>



■ 위 XML 데이터 가져와서 걍 출력하기


<html>
<head>
</head>
<body>
  <script>
    var xmldoc = new ActiveXObject("Microsoft.XMLDOM");
    xmldoc.async = false;
    xmldoc.load("./test.xml");
    var list =xmldoc.selectNodes("/ROOT/LIST");
    var cnt  = list.length;


    for(var i=0;i<cnt;i++) {
      var title = list(i).selectNodes("TITLE")(0).text;
      var author = list(i).selectNodes("AUTHOR")(0).text;
      document.writeln(i+". "+"제목 : "+title+" , 글쓴이 : "+author+"<br />");
    }


  </script>
</body>
</html>



사실.. xml 데이터를 가져온 후에 xsl을 이용해서 매우 간편하고도 강력하게 display를 해주는 것이 좋다.

하지만 xsl관련 library들이 사용자 pc에 확실히 있다고 보장을 할 수 가 없다.

다행이 xmldom의 경우 모질라등에서도 지원한다고 하니 그 사용폭이 더 넓어 질 것이다. ^^


Posted by 자스
이전버튼 1 이전버튼

블로그 이미지
자스

공지사항

Yesterday
Today
Total

달력

 « |  » 2025.9
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

최근에 올라온 글

최근에 달린 댓글

글 보관함