xml'den javascript ile veri okuma etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
xml'den javascript ile veri okuma etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

23 Ocak 2012 Pazartesi

Javascript ile xml okuma

Basit bir şekilde xml dökümanından javascript yardımı ile verileri nasıl alacağımızı göstereceğim. Öncelikle XMLFile.xml adında örnek bir xml dökümanı oluşturalım.


<?xml version="1.0" encoding="utf-8" ?>
<books>

    <book>
        <name>Issız Ev</name>
        <writer>Orhan Pamuk</writer>
    </book>

    <book>
        <name>Ama Hangi Atatürk</name>
        <writer>Taha Akyol</writer>
    </book>
   
</books>

Daha sonra açıklamalarını içerisine yazdığım gibi örnek bir htm dosyası oluşturalım. İki dosyayı aynı kılasöre koyup htm dosyasını tarayıcımızda açtığımızda, xml dosyamızın içerisindeki verilerin mesaj penceresi şeklinde teker teker ekrana geldiğini göreceğiz.


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>content</title>
    <script type="text/javascript">

        function GetXml() {

            if (window.XMLHttpRequest) {
                //yeni tarayıcılarda xml dosyasını bu şekilde import edebiliriz
                var httpObj = new XMLHttpRequest();
            } else {
                //internet explorer'ın bazı eski sürümlerine destek verebilmek için bu şekilde
                var httpObj = new ActiveXObject("Microsoft.XMLHTTP");
            }
            //xml dosyamızın adı.
            httpObj.open("GET", "XMLFile.xml", false);
            httpObj.send();

            var xmlDocument = httpObj.responseXML;
            //xml dosyamızın içinde hani verileri okumak istiyorsak onun ismini veriyoruz "book"
            var xmlEl = xmlDocument.getElementsByTagName("book");

            //kaç tane "book" nesnesi varsa
            for (i = 0; i < xmlEl.length; i++) {

                //sırası gelen "book" nesnesinin alt verilerinde gezinmek için
                for (j = 0; j < xmlEl[i].childNodes.length; j++) {

                    if (xmlEl[i].childNodes[j].nodeType != 1) {
                        continue;
                    }
                    //ekranda popup olarak yazdır
                    alert(xmlEl[i].childNodes[j].firstChild.nodeValue);
                }

            }
        }
   

    </script>
</head>
<body onload="GetXml()">
</body>
</html>