2012년 9월 6일 목요일

JQuery를 이용한 XML 파싱

jQuery를 이용한 XML 파싱코드입니다. $.ajax()를 이용해 xml문서를 불러올 수도 있고 $.get을 이용해서 불러올 수도 있고 방법은 각자 알아서 하시면 될듯합니다. 

아래 스크립트 코드에 노란색부분은 같은 결과를 나타내지만 약간씩 다른 셀렉팅 방법입니다. 그 외에도 변수 지정방법이나 코딩방법은 각자 알아서 하시면 되겠습니다.
-- bookstore.xml --

<?xml version="1.0" encoding="utf-8"?>
<bookstore>
   <book category="COOKING">
      <title lang="en">Everyday Italian</title>
      <author>Giada De Laurentiis</author>
      <year>2005</year>
      <price>30.00</price>
 </book>
   <book category="CHILDREN">
      <title lang="en">Harry Potter</title>
      <author>J K. Rowling</author>
      <year>2005</year>
      <price>29.99</price>
   </book>
   <book category="WEB">
      <title lang="en">Learning XML</title>
      <author>Erik T. Ray</author>
      <year>2003</year>
      <price>39.95</price>
   </book>
</bookstore>

-- HTML --
<div id="category"></div>
<div id="title"></div>
<div id="author"></div>
<div id="year"></div>
<div id="price"></div>

-- script --

<script type="text/javascript">
$(function(){
 $.ajax({
  url: "bookstore.xml",
  data: "xml",
  error: function(xhr){
   alert(xhr.status);
  },
  success: function(xml){
   var _category = "";
   var _title = "";
   var _author = "";
   var _year = "";
   var _price = "";
   //$("book[category='COOKING']", xml).each(function(){
   //$("author:contains('Giada De Laurentiis')", xml).closest("book").each(function(){
   //$("author:contains('Giada De Laurentiis')", xml).parents("book").each(function(){
   //$("bookstore book", xml).eq(0).each(function(){
   //$(xml).find("book").eq(0).each(function(){
   $(xml).find("bookstore").find("book").eq(0).each(function(idx) {
    _category = $(this).attr("category");
    _title = $("title", this).text();
    //_title = $(this).find("title").text();
    _author = $("author", this).text();
    _year = $("year", this).text();
    _price = $("price", this).text();
    
    $("#category").text("분 류: " + _category);
    $("#title").text("도서명: " + _title);
    $("#author").text("저 자: " + _author);
    $("#year").text("발행일: " + _year);
    $("#price").text("가 격: $" + _price);
   });
  }
 });
});
</script>

-- 결과화면 --
분 류: COOKING
도서명: Everyday Italian
저 자: Giada De Laurentiis
발행일: 2005
가 격: $30.00


----------------------
출처 - 까묵었음 ㅡㅡ;

댓글 없음:

댓글 쓰기

블로그 보관함