Bu makalede bir önceki makalede de bahsettiğimiz Xml dosya okuma işlemlerine devam ediyoruz. Bir Xml Dosya içerisindeki Node nesneleri içerisine atanm

Bir Xml Dosyasındaki Attribute Değerlerini Okumak

            Bu makalede bir xml dosya içerisindeki Node nesneleri içerisine atanmış Attribute değerlerinin nasıl okunduğu hakkında bilgiler bulabilirsiniz. Bu örnek için kullandığım Xml Dosya, Urun ve Ozellik Classlarını aşağıya ekliyorum. Anlaşılması açısından fayda sağlayabilir.

Xml Dosya:

<urunler>

  <urun>

    <urun_kodu>NKTLFN-6500</urun_kodu>

    <urun_adi>NOKİA 6500</urun_adi>

    <alis_fiyati>350</alis_fiyati>

    <satis_fiyati>450</satis_fiyati>

    - <ozellikler>

        <ozellik adi="Kamera" degeri="3.2 Mpx" />

        <ozellik adi="Video Kayıt" degeri="Var" />

        <ozellik adi="Konuşma Süresi" degeri="120 saat" />

        <ozellik adi="Bluetooth" degeri="Var" />

        <ozellik adi="Wi-Fi" degeri="Yok" />

        <ozellik adi="Mp3 Çalar" degeri="Var" />

    </ozellikler>

  </urun>

</urunler>

 


Urun ve Ozellik Classı:

 

public class Urun

    {

        public string UrunKodu { get; set; }

        public string UrunAdi { get; set; }

        public decimal AlisFiyati { get; set; }

        public decimal SatisFiyati { get; set; }

        public List<Ozellik>  Ozellikler { get; set; }

 

        public Urun()

        {

            this.Ozellikler = new List<Ozellik>();

        }

    }

    public class Ozellik

    {

        public string Adi { get; set; }

        public string Degeri { get; set; }

 

        public Ozellik()

        {}

    }


 Yukarıdaki iki classı kullanarak işlemlerimize başlayalım. İlk önce elimizde bulunan Xml Dosyasını bir XmlDocument nesnesi içerisine atıyoruz. Daha sonra bizim işlem yapacağımız nesne Ürünler olduğu için bu Xml dosya içerisindeki <urun> tagları arasındaki verileri "urunler" adını verdiğimiz XmlNodeList nesnesine atıyoruz. Bir urun listesi oluşturduktan sonra elimizde bulunan urunler isimli XmlNodeListin içeriğini içindeki <urun> tagının adeti kadar dönüyoruz. Elimize geçen her ürün tagından yeni bir ürün oluşturup, değerleri atıyoruz. Bu adımdan sonra sıra Attribute değerlerini okumaya geliyor. Bu kısımda içerisinde bulunduğumuz ürün tagının içerisindeki <ozellikler> Node nesnesinin içerisindeki <ozellik> taglarını da "ozellikler" adını verdiğimiz XmlNodeList nesnesine atıyoruz.

 

 

public List<Urun> XmlOku()

    {

        XmlDocument doc = new XmlDocument();

        doc.Load(Server.MapPath("XmlFile.xml"));

 

        XmlNodeList urunler = doc.SelectNodes("/urunler/urun");

 

        List<Urun> urunListesi = new List<Urun>();

        for (int i = 0; i < urunler.Count; i++)

        {

            Urun u = new Urun();

            u.UrunKodu = urunler[i]["urun_kodu"].InnerText;

            u.UrunAdi = urunler[i]["urun_adi"].InnerText;

            u.AlisFiyati = Convert.ToDecimal(urunler[i]["alis_fiyati"].InnerText);

            u.SatisFiyati = Convert.ToDecimal(urunler[i]["alis_fiyati"].InnerText);

 

            XmlNodeList ozellikler = urunler[i].SelectNodes("ozellikler/ozellik");

            for (int j = 0; j < ozellikler.Count; j++)

            {

                u.Ozellikler.Add(new Ozellik() { Adi = ozellikler[j].Attributes["adi"].Value, Degeri = ozellikler[j].Attributes["degeri"].Value});

            }

 

            urunListesi.Add(u);

        }

        return urunListesi;

    }


       Ozellikler adını verdiğimiz bu XmlNodeListesi artık bizim ilk "for" döngüsündeki işlem yaptığımız ürünün özellikleri oluyor.Attribute değerlerinide yukarıda görüldüğü şekilde okuyarak her nesneyi kendi özelliğine atıyoruz. Ve oluşan her urunu listeye ekliyoruz. XMLOku() metodundan dönen ürün listesini artık aşağıdaki şekilde istediğiniz yerde kullanabilirsiniz.

 

 

       List<Urun> okunanUrunler = XmlOku();

       foreach (Urun item in okunanUrunler)

       {

           //yapacağınız işlemler

       }

 

İlgili Makaleler

Bu yazıya 0 yorum yapılmış.

Yorum Gönder