09 December 2016

LINQ to XML

ADO.Net konularında XML oluşturma ve XML Dosyasından Veritabanına kayıt işlemi yer almıştı. Aynı işlemleri LINQ kullanarak farklı yöntemle yapabiliriz. Örnekler:

Örnek1:

var ogrenciler = new[]{
 new {ID=1,Ad="sema",Soyad="akyilmaz",Sirket="Btp1"},
 new {ID=2,Ad="aynur",Soyad="can",Sirket="Btp2"},
 new {ID=3,Ad="esma",Soyad="altun",Sirket="Btp3"},
 new {ID=4,Ad="eda",Soyad="deniz",Sirket="Btp4"},
 new {ID=5,Ad="gunay",Soyad="bayram",Sirket="Btp5"},
 new {ID=6,Ad="ahmet",Soyad="ahmet",Sirket="Btp6"},
 };
 XElement xe = new XElement("ogrenciler",
 from o in ogrenciler
 select new XElement("ogrenci",
 new XAttribute("ID", o.ID.ToString()),
 new XElement("Ad", o.Ad),
 new XElement("Soyad", o.Soyad),
 new XElement("Sirket", o.Sirket)
 )
 );
 xe.Save("OgrenciListesi.xml");

Örnek2:

class Program
 {
 static void Main(string[] args)
 {
 XDocument xdoc = XDocument.Load("CDCollection.xml");
 var cdler = from c in xdoc.Element("catalog").Elements("cd")
 //where c.Attribute("ID").Value=="1"
 select c;
foreach (var item in cdler)
 {
 //Console.WriteLine(item.Element("title").Value);
 }
//------------------------------------------------------------
 XElement xe= XElement.Load("CDCollection.xml");
 var cdler2 = from c in xdoc.Elements("cd")
 //where Convert.ToDouble(c.Element("price").Value) > 8
 where c.Element("artist").Value[0]=='A'
 select c;
 foreach (var item in cdler2)
 {
 //Console.WriteLine(item.Element("artist").Value);
 }
//------------------------------------------------------------
var cdler3 = from c in xe.Elements("cd")
 where string.Equals(c.Element("country").Value,"USA")
 select new
 {
 Ad=c.Element("title").Value,
 Fiyat=c.Element("price").Value
 };
 foreach (var item in cdler3)
 {
 Console.WriteLine("Adı: {0} ---> Fiyatı:{1}",item.Ad,item.Fiyat); 
 }
 }

 }

LINQ konusuna sonraki notlarımda devam edeceğim.