C# Xml İşlemleri
Merhabalar,
Bu yazımda C# ta xml oluşturma , okuma v.s. işlemlemleri nasıl yapıldığı hakkında örnek kodlarla açıklamaya çalışacağım .
Öncelik olarak bu işlemler için System.Xml.Linq sınıfını kullanacağız , bu nedenle projemizin using kısmına System.Xml.Linq kütüphanesini eklememiz gerekecek.
Örnek proje github linki : https://github.com/salihseker/C-Xml_Islemleri
// using System.Xml.Linq; //
XML Oluşturma:
Oluşturacağımız xml örneği şu şekildedir :
//
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Kullanicilar>
<!--Yorum ekleme v.s.-->
<Kullanici ID="1">
<Isim>Salih</Isim>
<Soyisim>ŞEKER</Soyisim>
<WebSite>www.salihseker.com</WebSite>
</Kullanici>
</Kullanicilar>
//
//
private static void xmlOlusturma()
{
/*
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Kullanicilar>
<!--Yorum ekleme v.s.-->
<Kullanici ID="1">
<Isim>Salih</Isim>
<Soyisim>ŞEKER</Soyisim>
<WebSite>www.salihseker.com</WebSite>
</Kullanici>
</Kullanicilar>
*/
XDocument XDoc = new XDocument(
new XDeclaration("1.0", "UTF-8", "yes"),
new XElement("Kullanicilar",
new XComment("Yorum ekleme v.s."),
new XElement("Kullanici", new XAttribute("ID", "1"),
new XElement("Isim", "Salih"),
new XElement("Soyisim", "ŞEKER"),
new XElement("WebSite", "www.salihseker.com")
)
)
);
XDoc.Save(@"D:\xmlOlusturmaOrnek.xml");
}
//
List<T> Koleksiyonundaki dataları XML Kaydetmek:
Kullanıcı Sınıfı :
//
class Kullanici
{
public Guid ID { get; set; }
public string Isim { get; set; }
public string Soyisim { get; set; }
public int Numara { get; set; }
public string Github { get; set; }
}
//
//
private static void listeXmlOlusturma()
{
List<Kullanici> Kullaniciler = new List<Kullanici>();
Kullanici k1 = new Kullanici();
k1.ID = Guid.NewGuid();
k1.Isim = "Salih";
k1.Soyisim = "SEKER";
k1.Numara = 1;
k1.Github = "github.com/salihseker";
Kullaniciler.Add(k1);
Kullanici k2 = new Kullanici();
k2.ID = Guid.NewGuid();
k2.Isim = "Kerami";
k2.Soyisim = "Ozsoy";
k2.Numara = 2;
k2.Github = "github.com/keramiozsoy";
Kullaniciler.Add(k2);
XDocument Doc = new XDocument(
new XDeclaration("1.1", "UTF-8", "yes"),
new XElement("Kullanciciler", Kullaniciler.Select(I =>
new XElement ("Kullanici",
new XElement("ID", I.ID),
new XElement("Isim", I.Isim),
new XElement("Soyisim", I.Soyisim),
new XElement("Numara", I.Numara),
new XElement("Github", I.Github)
)
)
)
);
Doc.Save(@"D:\Kullanicilar.xml");
}
//
İşlemimizde Kullanicilar listesini linq Select işlemi ile içeriğini döndük, bu işlem for veya foreach gibi döngülerle de yapılabilir.
Sonuc :
Kullanicilar.xml
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Kullanciciler>
<Kullanici>
<ID>56b1004e-0922-4866-8aa9-68eb7790cd36</ID>
<Isim>Salih</Isim>
<Soyisim>SEKER</Soyisim>
<Numara>1</Numara>
<Github>github.com/salihseker</Github>
</Kullanici>
<Kullanici>
<ID>d4c8ad8e-8028-4650-86a7-14fa2eb4909d</ID>
<Isim>Kerami</Isim>
<Soyisim>Ozsoy</Soyisim>
<Numara>2</Numara>
<Github>github.com/keramiozsoy</Github>
</Kullanici>
</Kullanciciler>
Xml Okuma:
docOku.Descendants ile node ların adının Kullanici olduğu belirtiliyor.
//www.salihseker.com - Salih ŞEKER
private static void xmlOkuma()
{
XDocument docOku = XDocument.Load(@"D:\Kullanicilar.xml");//xml XDocument nesnesine yükleniyor
List<XElement> okunanXElement = docOku.Descendants("Kullanici").ToList();//Node ların adının Kullanici olduğu belirtiliyor.
foreach (var item in okunanXElement)//Okunan Nodların içerikleri ekrana yazdırılıyor
{
Console.WriteLine("ID : " + item.Element("ID").Value);
Console.WriteLine("Isim : " + item.Element("Isim").Value);
Console.WriteLine("Soyisim : " + item.Element("Soyisim").Value);
Console.WriteLine("Numara : " + item.Element("Numara").Value);
Console.WriteLine("Github : " + item.Element("Github").Value);
Console.WriteLine();
}
Console.ReadLine();
}
//
yardımcı olması dileğiyle , iyi çalışmalar 🙂 Salih ŞEKER.

