jQuery Ajax ve Asp.Net ile XML dosyalarını okumak

Tarih 14 Ocak 2010 Perşembe, 16:20 | Etiket(ler) Ajax, JavaScript, jQuery, Asp.Net

Yeni bir yazıyla yine birlikteyiz. Bu sefer başlıktan anlaşılacağı gibi Asp.Net ve jQuery Ajax ile XML dosyalarını nasıl okuyacağımızı anlatmaya çalışacağım. Aslında bu blogda projelerde kullanmamız gereken ve faydalı olduğuna inandığım bilgileri paylaşmaya çalışıyorum. Gerçek hayatta deneyimler ile kazanılmış ve zaman ayrılıp araştırılıp sonuca ulaşılmış çözümler her zaman daha sonuç odaklı olur diye düşünüyorum. Teorik olan bilgi uygulanmadan tecrübe edilmez mottosuyla yazımıza başlayalım.

Okumamız gereken XML dosyasını ilk etapta generic handler olarak oluşturacak, arkasından bu datayı jquery ile dinamik olarak Asp.Net formu üzerinden ajax ile okuyacağız. jQuery'i indirip projenize ekleyin ve aşağıdaki şekilde bir generic handler (.ashx) oluşturun.

Bu datayı kişiselleştirebilir, session veya cookie değerlerine göre şekillendirebilir, kullanıcılarınıza özel çözümler üretebilirsiniz. Ben örnek olması amacıyla şöyle bir veri oluşturdum.

Verileri sağlayan Handler.ashx dosyamız.
Imports System
Imports System.Web
Imports System.Xml

Public Class Handler : Implements IhttpHandler

Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
    context.Response.ContentType = "text/xml"
    Dim xmlYazici As New XmlTextWriter(context.Response.OutputStream, Encoding.UTF8)
    xmlYazici.Formatting = Formatting.Indented
    xmlYazici.WriteStartDocument()
    xmlYazici.WriteStartElement("Sonuclar")
    xmlYazici.WriteElementString("AdiSoyadi", "Cenk SARI")
    xmlYazici.WriteElementString("KullaniciID", "13")
    xmlYazici.WriteElementString("Sonuc", "Giriş işlemi başarıyla sonuçlandı")
    xmlYazici.WriteEndElement()
    xmlYazici.WriteEndDocument()
    xmlYazici.Flush()
    xmlYazici.Close()
End Sub

Public ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable
    Get
        Return False
    End Get
    End Property
End Class
Gördüğünüz gibi 3 adet veri üretiyoruz. AdıSoyadı, Kullanıcı ID ve Sonuç. Şimdi dosyayı okuyacağımız javascript fonksiyonumuza gelelim.
function xmlParse(gidecek) {
$.ajax({
    url: gidecek,
    type: 'GET',
    dataType: 'xml',
    cache: false,
    success: function(xml){
       $(xml).find('Sonuclar').each(function(){
            var AdiSoyadi = $(this).find('AdiSoyadi').text();
            var KullaniciID = $(this).find('KullaniciID').text();
            var Sonuc = $(this).find('Sonuc').text();
            $('#adi').html(AdiSoyadi);
            $('#kid').html(KullaniciID);
            $('#son').html(Sonuc);
        });
    },
    error: function(){
        $('#son').html('Sonuçlar alınırken bir hata oluştu!');
    }
});
}
Sonuçları basacağımız Default.aspx sayfamız
<form id="form1" runat="server">
<a href="javascript:void(0);" onclick="xmlParse('Handler.ashx');">XML al ve sonucu bas</a>
<br />
<h1>Sonuçlar</h1>
<div id="sonuc">
    <div id="adi"></div>
    <div id="kid"></div>
    <div id="son"></div>
</div>
</form>
Siz isterseniz bu handler'a veri post edebilir, session ve cookie gibi yardımcı elemanlar dışında sonuçları girilen veriye göre de şekillendirebilirsiniz.

Projenin çalışan halini buradan indirebilirsiniz



Yorumlar

Tarih 18 Nisan 2011 Pazartesi, 10:14 | Yazan İhlas Temizlik Robotu

Gayet açıklayıcı olmuş Teşekkürler

Tarih 21 Ocak 2010 Perşembe, 22:09 | Yazan Selman Mert

Web.Methodlarada erişebiliyor bu alet bildiğim kadarıyla
Yorum yazın

Capthca Karakterleri kutuya giriniz
Kodu değiştir...


Geri Dön   |   Ana Sayfaya Dön