23 Mart 2014 Pazar

Asp.Net (C#) Linq to XML ile XML dosyasına veri ekleme

2 comments
Bu yazıda Asp.Net projelerimizde Linq to XML kullanarak, XML uzantılı dosyalara veri ekleme işleminin nasıl gerçekleştirileceğini anlatacağım.

Linq (Language Integrated Query) dil ile bütünleşmiş sorgulardır. Linq kullanılarak nesneler üzerinde aramalar yapılabilir, aramaların sonucunu hızlı bir şekilde List Object haline dönüştürebilir.

İlk olarak yeni bir xml dosyası oluşturuyorum. İçine yalnızca aşağıdaki gibi <kullanicilar> </kullanicilar> satırlarını ekliyorum.



Şimdi yeni bir web form oluşturuyorum. Aşağıdaki gibi textbox'ları ekliyorum. XML dosyasına ekle butonuna tıkladığımda ad ve soyadı ekleyeceğim.


Şimdi butona çift tıklayarak tetiklendiği olaya gidiyorum.

Sayfaya using System.Xml.Linq; referansını ekliyorum.

Aşağıdaki kodları yazıyorum.

protected void Button1_Click(object sender, EventArgs e)
    {
        XDocument xDoc = XDocument.Load(Server.MapPath("~/xml/kayitlar.xml"));
        //XML dosyasını açıyorum.

        if (xDoc != null)
        {
            XElement elements = xDoc.Element("kullanicilar");
            //kayitlar.xml dosyasında bulunan <kullanicilar>...</kullanicilar> etiketinin içine ekliyorum.
            XElement addedElement = new XElement(new XElement("kullanici", new XElement("ad", tb_ad.Text), new XElement("soyad", tb_soyad.Text)));
            //<kullanici> etiketi oluşturuyorum ve içine <ad> ve <soyad> etiketlerini ve textbox'lardan alınan değerleri ekliyorum.
            addedElement.SetAttributeValue("id", "1");
            //id değerine 1 ekliyorum.
            elements.Add(addedElement);
            xDoc.Save(Server.MapPath("~/xml/kayitlar.xml"));
            //XML dosyasını kaydediyorum.
        }
    }

Şimdi sayfamı çalıştırıyorum.

Aşağıdaki gibi textbox'ları doldurup butona tıklıyorum.


XML dosyama bakıyorum.


Görüldüğü gibi verilerim XML dosyasına eklendi. 

İyi çalışmalar...


If You Enjoyed This, Take 5 Seconds To Share It

2 yorum:

yerkan54 dedi ki...

mrblar her eklediğimiz yeni veri eskisini siliyor onu nsl halledecez

Adsız dedi ki...

mrblar her eklediğimiz yeni veri eskisini siliyor onu nsl halledecez bu yoruma bende katılıyorum..