XDocument doc=XDocument.Load("PurchaseOrders.xml"); ile doc nesnesine öncelikle elementimizi yüklüyoruz.Böylece artık XML belgemiz belleğe yerleşti.
- Yapacağımız ilk sorgu PurchaseOrder'ın içerisinde yer alan PurchaseOrderNumber'ı listeletmek olacak.
var purchase = from p in doc.Element("PurchaseOrders").Elements("PurchaseOrder")
select p.Attribute("PurchaseOrderNumber");
Burada yaptığımız işlem öncelikle doc nesnesindeki PurchaseOrders olan root elementine gitmek.Daha sonra ise bu root elementte bulunanan PurchaseOrder elementlerine ulaşıyoruz.PurchaseOrder tagı artık birden fazla olduğu için burada yapacak işlemlerimiz bu kadar.Daha sonra select bölümünde p'nin de PurchaseOrderNumber attribute'unu alıyoruz.Şuan purchase içerisinde PurchaseOrderNumber'lar bulunuyor.Bundan sonra yapacağımız, bu numaraları foreach döngüsü ile ekrana yazdırmak yada kullanmak.
foreach (var number in purchase)
{
Console.WriteLine(number.Value);
}
- 2.sorgumuz ise daha karmaşık olacak.Burda yaptığımız ise adresleri içerisindeki elementlerle beraber sorgulamak olacak.Bunun için:
let adres = p.Element("Address")
select new
{
Type = adres.Attribute("Type").Value,
Name = adres.Element("Name").Value,
Street = adres.Element("Street").Value,
City = adres.Element("City").Value,
State = adres.Element("State").Value,
Zip = adres.Element("Zip").Value,
Country = adres.Element("Country").Value
};
Öncelikle birinci örnekte olduğu gibi purchaseorder elementine yine erişiyoruz. let anahtar kelimesiyle bir değişken gibi tanımlama yapıyoruz.Böylece sorgumuzu uzun ve anlaşılması daha zor olmaktan kurtarıyoruz.Daha sonra bir anonymous tip yaratarak bu bilgileri tipin içine atıyoruz.Bilgileri kullnırken yine foreach ile alabiliriz.Ayrıca foreach içerisinde var ile tanımladığımız değişkene intellisense ile baktığımızda tanımladığımız tüm değişkenleri görebiliyoruz.
- Son sorgumuz ise where anahtar kelimesinin kullanımı ile ilgili.Burada ise Adres elementi içerisndeki Ad elementinin 'E' başlayan değerleri bulacağız.Burada yazacağımız sorgu yukarıdakilerden daha kolay olacak:
let name = p.Element("Address").Element("Name")
where name.Value[0] == 'E'
select name.Value;
where ile baş harfi kontrol ederek istediğimiz elementleri alabiliyoruz.
Programın tüm kodlarına buradan ulaşabilirsiniz.
Kolay Gelsin
0 yorum:
Yorum Gönder