Xml Dosyasından Veri Okuma --JQuery


.xml uzantılı verilerimizi okuyacagımız dosyanın içeriği aşağıdaki gibidir.

<?xml version="1.0" encoding="utf-8"?>
<iller>
 <il >
   <telefonkodu>
     0 212
   </telefonkodu>
   <sehir>
     Istanbul
   </sehir>
 
       </il>
 
 <il >
 
   <telefonkodu>
     0 442
   </telefonkodu>
   <sehir>
     Erzurum
   </sehir>
       </il>
</iller>


Evet xml tanımladık ve şimdi ajax metodu ile bu xml dosyamıza ulaşalım ve içeriğini alalım

<script type="text/javascript">
$.ajax({
  url:'veri.xml',
  type:'POST',
  dataType:'xml',
  success:function(xml){
                //Eğer işlem başarılı ise burada ki kodlar çalışacak.
                alert('Veri başarı ile yüklendi.')
 
});
</script>

Peki XML i sayfaya yükledik ama içinde ki düğümlere teker teker ulaşalım.Nasıl derseniz bakın şöyle;Eğer işlem başarılı ise neler yapılabileceğine bakalım:

<script type="text/javascript">
$.ajax({
  url:'veri.xml',
  type:'POST',
  dataType:'xml',
  success:function(xml){
                //Eğer işlem başarılı ise burada ki kodlar çalışacak.
                $(xml).find('il').each(function(){
                 var telKodu=$(this).find('telefonkodu').text();
                 //0 212,0 442
                 var iladi=$(this).find('sehir').text();
                 //Istanbul,Erzurum
             })
 
});
</script>
Evet bu şekilde bilgilere ulaşmaya çalıştık ve ulaştık. Son olarak XML dosyasının Cash yapmasını engellememiz lazım olabilir.Bunu da extra bir bilgi olarak paylaşmak isterim. Yukarıda ki kodlara bir kaç ekleme yaparak bunu halledelim.
<script type="text/javascript">
var rast=Math.round(Math.random()*10000);
//sayfa her yüklendiğinde 1 ile 10000 arasında rastgele bir sayı oluşturalım.
$.ajax({
  url:'veri.xml?uid='+rast,//dosya uzantısının sonunu bu şekilde değitirelim
  type:'POST',
  dataType:'xml',
  success:function(xml){
                //Eğer işlem başarılı ise burada ki kodlar çalışacak.
                $(xml).find('il').each(function(){
                 var telKodu=$(this).find('telefonkodu').text();
                 //0 212,0 442
                 var iladi=$(this).find('sehir').text();
                 //Istanbul,Erzurum
             })
 
});
</script>

Hiç yorum yok:

Yorum Gönder