İçeriğe geç

XML Dosya Okuma

Merhaba Arkadaşlar,

C# ile XML dosya okumaya kısa ve hızlı bir şekilde göz atalım istiyorum bu yazıda.

Öncelikle aşağıdaki gibi bir örnek dosyamız olsun. (En altta link’ten bu projeyi indirebilirsiniz. XML’de içerisinde var.)

Görüldüğü üzere 6 adet node’dan oluşan bir XML dosyam var ve bu dosyadaki verileri okuyarak işlemek istiyorum.

En hızlı en güvenli yollardan birisi de Node (Düğüm) olarak anılan her bir node’un tipinin içerisinde dönmek. Tabi burada karşımıza başka node’lar da çıkacak. İşte bunları ayrıştırmak için de her dönüşte “Acaba bu gelen Node’un tipi XmlNodeType.Element mi?” diye kontrol ediyor olacağız.

Eğer tipi XmlNodeType.Element ise o zaman bizim istediğimiz tipte, içerisinde değer barındıran bir xml’dir ve veriyi çekebiliriz.

Kodumuz aşağıdaki gibi; zaten içerisinde açıklama satırı olarak da bilgileri ekledim.

//Buradaki adres kısmını istersek bir Web URL olarak da verebiliriz. Tercih tamamen sizin...
string xmlAddress = AppDomain.CurrentDomain.BaseDirectory + "Ornek_XML.xml";

//Xml tanımlama işlemimizi yapıyoruz. Bundan sonra tüm işimiz XmlTextReader ile olacak...
XmlTextReader XMLDosyam = new XmlTextReader(xmlAddress);

string author = string.Empty,
title = string.Empty,
genre = string.Empty,
price = string.Empty,
publish_date = string.Empty,
description = string.Empty;

while (XMLDosyam.Read())
{
if (XMLDosyam.NodeType == XmlNodeType.Element)
{
//Node Element'imizin adını kontrol ediyoruz. (Örn: <author> için "author" kullanıyoruz...)
switch (XMLDosyam.Name)
{
case "author":
//Eğer istediğimiz ise o zaman okuyalım...
XMLDosyam.Read();
//Bulduğumuz değişkenin değerini string'e atayalım...
author = XMLDosyam.Value;
break;
case "title":
XMLDosyam.Read();
title = XMLDosyam.Value;
break;
case "genre":
XMLDosyam.Read();
genre = XMLDosyam.Value;
break;
case "price":
XMLDosyam.Read();
price = XMLDosyam.Value;
break;
case "publish_date":
XMLDosyam.Read();
publish_date = XMLDosyam.Value;
break;
case "description":
XMLDosyam.Read();
description = XMLDosyam.Value;

//Her bloktaki en son node'umuz olduğu için bunu yakalayıp verisini aldığımız anda o satır bitmiş demektir ve toplam değeri yazdıralım...
string sonSatir = author + ", " + title + ", " + genre + ", " + price + ", " + publish_date + ", " + description
+ Environment.NewLine; //Burada da yeni satır ekleyelim ki görüntüde karışmasın...

Console.WriteLine(sonSatir); //Şimdi de sonucu ekrana yazdıralım...

break;

default:
break;
}
}
}

Console.ReadKey();

Evet işte sonuca ulaştık. Ben bunu bir console uygulaması ile gerçekleştirdim. Sonuç aşağıdaki gibi. Siz, c# ile hemen her platformda aynı kodları kullanabilirsiniz.

Umarım işinize yarar bir makale olmuştur. İyi çalışmalar… 🙂

Örnek projeyi buradan indirebilirsiniz: 

Xml Okuma Örnek Proje

Rar Şifresi: edomurcuk.com

0 0 votes
Article Rating
Tarih:Asp.Net - C#
Subscribe
Bildir
guest
0 Yorum
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x