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.

Print Friendly, PDF & Email

You may also like...

Bir cevap yazın