JavaScript XML Okuma, Verileri Listeleme, Örnek Uygulama
Có thể bạn quan tâm
Yazıda JavaScript ile XML dosyasını okuma ve XML içerisindeki verileri listeleme işlemi XML örnek uygulamasıyla yer alıyor.
XML okuma
JavaScript XML dosyalarını okumak ve veri çekmek için AJAX kullanılır.
AJAX ile ilgili detaylı bilgiye JavaScript AJAX Nedir? Kullanımı yazısından ulaşabilirsiniz.
AJAX ile XML Nedir? yazısında yer alan aşağıdaki kisiler.xml dosyasını okuyalım.
<?xml version="1.0" encoding="UTF-8"?> <kisiler> <kisi> <sira>1</sira> <adi>Yusuf</adi> <soyadi>SEZER</soyadi> </kisi> <kisi> <sira>2</sira> <adi>Ramazan</adi> <soyadi>SEZER</soyadi> </kisi> <kisi> <sira>3</sira> <adi>Sinan</adi> <soyadi>SEZER</soyadi> </kisi> <kisi> <sira>4</sira> <adi>Mehmet</adi> <soyadi>SEZER</soyadi> </kisi> </kisiler>Okuma işlemi için JavaScript AJAX Nedir? Kullanımı yazımda yer alan AJAX fonksiyonunu kullanabiliriz.
<script> 'use strict'; function ysAjax(url, method, data, callback) { var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function () { if (this.readyState == 4 && this.status == 200) { if (typeof callback == 'function') { callback(this); } } } xhr.open(method, url); if (method == 'POST' && !(data instanceof FormData)) { xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); } xhr.send(data); } ysAjax('kisiler.xml', 'GET', null, islemler); function islemler(sonuc) { console.log(sonuc.response); } </script>XML verileri listeleme
XML Okuma ile AJAX teknolojisini kullanarak XML dosyasını okumuştuk.
Okuma sırasında response, responseText ve responseXML değerlerini kullanabiliyorduk.
responseXML, XMLDocument nesnesi olduğundan bize kullanmamız için çeşitli metot ve özellik sunar.
XMLDocument nesnesi içerisinde HTML etiketlerinde de işlem yapmak için kullanılan getElementsByTagName, querySelector, querySelectorAll gibi DOM metotlarını sunar.
Kişi listesinin olduğu kisiler.xml dosyasından kişileri listeleyelim.
<?xml version="1.0" encoding="UTF-8"?> <kisiler> <kisi> <sira>1</sira> <adi>Yusuf</adi> <soyadi>SEZER</soyadi> </kisi> <kisi> <sira>2</sira> <adi>Ramazan</adi> <soyadi>SEZER</soyadi> </kisi> <kisi> <sira>3</sira> <adi>Sinan</adi> <soyadi>SEZER</soyadi> </kisi> <kisi> <sira>4</sira> <adi>Mehmet</adi> <soyadi>SEZER</soyadi> </kisi> </kisiler>XML verilerini listelemek için öncelikle XML dosyasını okuyalım.
<script> 'use strict'; function ysAjax(url, method, data, callback) { var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function () { if (this.readyState == 4 && this.status == 200) { if (typeof callback == 'function') { callback(this); } } } xhr.open(method, url); if (method == 'POST' && !(data instanceof FormData)) { xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); } xhr.send(data); } ysAjax('kisiler.xml', 'GET', null, islemler); function islemler(sonuc) { console.log(sonuc.responseXML); } </script>XML elemanlarını getElementsByTagName metodunu kullanarak seçelim, metot sonucunda dönen children özelliği ile değerlere ulaşalım.
<script> 'use strict'; function ysAjax(url, method, data, callback) { var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function () { if (this.readyState == 4 && this.status == 200) { if (typeof callback == 'function') { callback(this); } } } xhr.open(method, url); if (method == 'POST' && !(data instanceof FormData)) { xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); } xhr.send(data); } ysAjax('kisiler.xml', 'GET', null, islemler); function islemler(sonuc) { var xml_degeri = sonuc.responseXML, liste = xml_degeri.getElementsByTagName('kisi'), sira = 0, uzunluk = liste.length, eleman = ''; for (sira = 0; sira < uzunluk; sira++) { eleman += liste[sira].children[0].innerHTML + ' '; eleman += liste[sira].children[1].innerHTML + ' '; eleman += liste[sira].children[2].innerHTML + '\n'; } console.log(eleman); } </script>Verileri DOM nesnesine ait getElementById metodunu kullanarak web sayfası içindeki elemana yazdıralım.
<p id="kisi_listesi"></p> <script> 'use strict'; function ysAjax(url, method, data, callback) { var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function () { if (this.readyState == 4 && this.status == 200) { if (typeof callback == 'function') { callback(this); } } } xhr.open(method, url); if (method == 'POST' && !(data instanceof FormData)) { xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); } xhr.send(data); } ysAjax('kisiler.xml', 'GET', null, islemler); function islemler(sonuc) { var xml_degeri = sonuc.responseXML, liste = xml_degeri.getElementsByTagName('kisi'), sira = 0, uzunluk = liste.length, eleman = ''; for (sira = 0; sira < uzunluk; sira++) { eleman += liste[sira].children[0].innerHTML + ' '; eleman += liste[sira].children[1].innerHTML + ' '; eleman += liste[sira].children[2].innerHTML + '< br / >'; } document.getElementById('kisi_listesi').innerHTML = eleman; } </script>JavaScript ile XML işlemler oldukça kolay olmasına rağmen XMLDocument nesnesi içerisinde benzer metot ve özellik bulunmasından dolayı işlemler karmaşıklaşabilir.
XML okuma ve listeleme işlemleri sırasında tarayıcılarda yer alan geliştirici araçlarından faydalanmak işlemleri kolaylaştıracaktır.
XML Örnek Uygulama
XML Okuma yazısında XML dosyasını okumayı, XML Listeleme yazısında ise XML dosyasındaki verileri listelemeyi görmüştük.
XML verilerini web sayfası içerisinde çeşitli HTML elemanları ile birlikte kullanabiliriz.
Kişi listesinin olduğu kisiler.xml dosyasından kişileri listeleyelim.
<?xml version="1.0" encoding="UTF-8"?> <kisiler> <kisi> <sira>1</sira> <adi>Yusuf</adi> <soyadi>SEZER</soyadi> </kisi> <kisi> <sira>2</sira> <adi>Ramazan</adi> <soyadi>SEZER</soyadi> </kisi> <kisi> <sira>3</sira> <adi>Sinan</adi> <soyadi>SEZER</soyadi> </kisi> <kisi> <sira>4</sira> <adi>Mehmet</adi> <soyadi>SEZER</soyadi> </kisi> </kisiler>XML verilerini göstereceğimiz HTML elemanlarını oluşturalım.
<p id="kisi_bilgi"></p> <input type="button" value="Önceki" /> <input type="button" value="Sonraki" />XML dosyasındaki verileri okuyalım.
<script> 'use strict'; function ysAjax(url, method, data, callback) { var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function () { if (this.readyState == 4 && this.status == 200) { if (typeof callback == 'function') { callback(this); } } } xhr.open(method, url); if (method == 'POST' && !(data instanceof FormData)) { xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); } xhr.send(data); } ysAjax('kisiler.xml', 'GET', null, islemler);XML dosyasındaki verileri işleyelim.
var liste, konum = 0, kisi_sayisi = 0; function islemler(sonuc) { var xml_degeri = sonuc.responseXML; liste = xml_degeri.getElementsByTagName('kisi'); kisi_sayisi = liste.length - 1; goster(konum); } function goster(sira) { var eleman = ''; if (sira < 0) konum = kisi_sayisi; if (sira > kisi_sayisi) konum = 0; eleman = 'Sıra: ' + liste[konum].children[0].innerHTML + '<br />'; eleman += 'Adı: ' + liste[konum].children[1].innerHTML + '<br />'; eleman += 'Soyadı: ' + liste[konum].children[2].innerHTML + '<br />'; document.getElementById('kisi_bilgi').innerHTML = eleman; } </script>XML dosyasındaki verileri liste isimli bir değişkene aktardık, daha sonra goster fonksiyonu ile gönderilen parametreye göre XML değerini HTML elemanına aktardık.
Önceki ve sonraki HTML elemanlarına basıldığında görünen elemanı değiştirmek için onclik olayı ekleyelim.
<p id="kisi_bilgi"></p> <input type="button" value="Önceki" onclick="goster(--konum);" /> <input type="button" value="Sonraki" onclick="goster(++konum);" />Önceki ve sonraki elemanlarına basıldığında XML elemanına ait sırayı tutan konum değişkenini azaltıp arttırarak elemanlar arasında geçiş yapmış olduk.
Diğer JavaScript XML işlemlerine JavaScript derslerinden ulaşabilirsiniz.
Hayırlı günler dilerim.
Từ khóa » Html Ile Xml Den Veri çekme
-
Html'e XML'den Veri Çekme Yardım? - FrmTR ForumTR Forum TR
-
Bir XML'i HTML İçerisinde Göstermek - Fibiler
-
Ajax İle Xml Dosyası Üzerinden Veri Çekme İşlemi Nasıl Yapılır
-
Xml Verilerini Html Sayfası İçerisinde Elde Edip Kullanmak - YouTube
-
Php Xml Okuma | Php Ile Xml Dosyadan Nasıl Veri Çekilir? - Webcesi
-
Webden Veri çekme
-
JQuery Ile XML'den Veri Almak | Tulpar Yazılım Ve Danışmanlık
-
Php Ile Xmlden Veri Çekme - Yadotek
-
PHP De XML Veri Nasıl Çekilir
-
JSP 'de XML Veri Gösterimi - Burak Kutbay'ın Kişisel Blog'u
-
Php Ile Xml Okuma Uygulaması - Yazılım Ve Tasarım Günlüğü
-
C# XML Veri Çekme, Ekleme, Güncelleme, Silme
-
JavaScript Ile JSON Veri Çekmek - Tasarım Kodlama