XML üzerinde Linq ile işlemler yapabilmemiz için öncelikle System.Xml.Linq Dll'ini eklememiz gerekiyor.Daha sonra ise System.Xml.Linq namaspace'ini yazıyoruz.
System.Xml.Linq Namespace altında bulunan ve bizim kullanacağımız sınıflar ve açıklamaları
- XDocument=> Bir XML Dökümanını temsil eder.
- XElement=>Bir XML Elementini temsil eder.
- XAttribute =>Bir XML Attribute'unu temsil eder.
- XDeclaration=>XML başlığında yapılan tanımlamaları temsil eder.
- XComment=>Xml Dökümanındaki yorumları temsil eder.
XDocument doc=new XDocument(
new XDeclaration("1.0","utf-8","yes"),
new XComment("Linq icin olusturulan ornek"),
new XElement("Kisiler",
new XElement("Kisi",
new XAttribute("ID",3),
new XElement("Adi","Ilkay"),
new XElement("Soyadi","Ilknur"),
new XElement("Meslegi","Ogrenci")
)));
Console.WriteLine(doc.ToString());
Console.ReadLine();
Yaptığımız bu doc içerisinde belirttiğimiz tanımlamalarla şu şekilde bir döküman oluşturuyoruz.
var data = new[] {
new{ ID=1,Adi="Ahmet"},
new{ ID=8,Adi="Ibrahim"},
new{ ID=3,Adi="Mehmet"}
};
var yapısı bildiğimiz gibi C# 3.0 ile yapı.Tipi belli olmayan değişkenler için kullanıyoruz.
Bu yapıyı bir elemente eklemek istersek;
XElement kisiler = new XElement("Kisiler",
from c in data
select
new XElement("Kisi",
new XAttribute("ID", c.ID),
new XElement("Adi", c.Adi)));
Console.WriteLine(kisiler.ToString());
Burada yazdığımız tek bir ifade ile döngü kullanmadan tüm içeriği ekleyebiliriz.c derken array içindeki new ile yaratılan bir yapıyı kastediyoruz.Böylece sırayla tüm array dolaşılarak istenilen yapılar XML'e dönüştürülüyor.Oluşturduğumuz elementi yazdırırsak ;
Kullandığım kodları indirmek için tıklayın.
İyi Geceler
0 yorum:
Yorum Gönder