Bugun ki yazımda temel olarak Linq to XML'i nasıl kullanabileceğimizi bir wpf uygulaması üzerinden örnekliyor olacağız.Bunun için öncelikli olarak bir Wpf uygulaması açalım ve içerisine bir adet XML dökümanı ekleyerek, kendimiz bir XML içeriği oluşturalım.

 

 şimdi hızlıca formumuzu tasarlayalım ;

 en üstte bir Listbox var , hemen altında ise bir buton bir textbox ve bir adette textblock bulunmakta.Şimdi ilk işlemde şunu düşünmemiz gerekiyor.XML dökümanı içerisinde ki attribute lerle bir işim var mı ?? örneğin ; attribute 'u condition olarak verip , bu kısıtlamaya göre sorgu döndürecekmiyim ; mesela 1 nolu id ye ait çalışanı getir diyecek miyim ? demiyeceksem XDocument class'ını kullanabilirim.Bu class'ı  formumuzun içinde tanımlayıp  ctrl ve nokta tuşlarına bastıgımızda System.XML.Linq namespace inin eklendiğini göreceksiniz.Bu kutuphane bizim Linq to XML için kullanacağımız kütüphane.

Xml belgesini uygulamamın debug klasörünün içine attım.Şimdi o belgeyi linqToxml kullanarak ListBox'ın içinde gösterelim ;

 XDocument static bir class , bu yüzden instance ı alınamıyor.Biz burada Load methodunu kullanarak xml belgesini XDocument class ına gönderdik.Yani fiziksel olarak , ram in heap bölgesine attık. ( class lar referance type oldukları için ).

 from diyerek x bir değişken deklare ettik , Calisanlar root elementinin altında ki elementlerden getir dedik.Yani bunlar Calisan elementi oluyor.Daha sonrada çalışanın altında ki element lerin değerlerini select ile çektik.Daha sonrada Calisanlar var ( iqueryable ) içinde ki değerleri Liste atıp , listbox1 in itemsSource una gönderdik.  

Bakalım başarılı olduk mu ;

 aynı sorunu istersem kendim bir generic list koleksiyonu oluştururakta alabiliridim örneğin ;

sonuc ;

 bu seferde attribute leri kullanalım.mesela diyelim ki ID si 2 olan çalışanı getir.Bu sefer işin içine root u karıştırmıycaz.Bunun içinde XElement static class'ı işimize yarayacak.

 

 burada direk olarak çalışan element'lerine ulaştık ve bu elemente ait olan id attibute'u, textboxdan girilen ID ye eşitse çalışanın adını ve soyadını textblock da gösterdik.