Bu makalede programcılar için olmazsa olmaz nesnelerden biri olan xml dosyası içerisinden, bölüm bölüm nesnelerin seçilmesi işlemi anlatılmaktadır. Bi

XML üzerinden XMLNode İşlemleri

            Xml dosyalarıyla işlem yaparken en bilinen yol XML dosyasını bir dataset içerisine atarak kolay bir şekilde işlem yapmaktır. Ancak bu işlem için XML dosyasının Patch ini bilmemiz gerek. Eğer sabit bir xml dosyamız yoksa; örneğin bir web servisinden XML dönüyorsa dataset içerisine atamıyoruz. Hal böyle olunca Xmli ayrıştırarak işlemlerimizi yapmamız gerekiyor. XML dosyasını ayrıştırırken kullanılan en iyi yol XPatch ifadelerinin kullanılması ve SelectNodes metodudur.

           SelectNodes metodunu kullanarak işlem yaptığımızda, metoda verdiğimiz XPath ifadesine uygun olan Node nesnelerini XML dosyası içerisinden bir liste halinde çekebiliriz.İlk olarak aşağıdaki gibi bir Xml dosyamızın olduğunu varsayalım.

XML Dosyamızın içeriği:

<Urunler>

  <Urun>

    <Markasi>Nokia</Markasi>

    <Modeli>5310</Modeli>

  </Urun>

    <Urun>

    <Markasi>Samsung</Markasi>

    <Modeli>E 250</Modeli>

  </Urun>

  <Urun>

    <Markasi>Nokia</Markasi>

    <Modeli>5310</Modeli>

  </Urun>

</Urunler>

 


Yukarıdaki XML dosyasından tüm ürünleri bir Node Listesi içerisinde toplamak için /Urunler/urun Xpatch ifadesini kullanıyoruz. Burada yazdığımız /Urunler kısmı ise bu Node’ in içerisinde ara manasına geliyor.

Şimdi ilk önce bir XmlDocument oluşturup; içerisine Xml imizi atalım.Daha sonra bu XmlDocument dosyasından SelectNodes metodunu kullanarak döküman içerisindeki Urun Nodelerini bir XmlNodeList listesine atalım. Artık oluşturduğumuz XmlNodeList listesini dönerek yakalamak istediğimiz değerin Node içerisindeki adını yazarak innerText değerini alabiliriz.Aşağıdaki örneği inceleyerek daha detaylı bir şekilde anlayabilirsiniz.
Metod:

 

public void XmlOku()

    {

        UrunlerWebServisi servis = new UrunlerWebServisi();

        XmlElement urunler = servis.UrunGetir();

       

        XmlDocument xml = new XmlDocument();

        xml.LoadXml(urunler.OuterXml);

 

        List<string> xmldenGelenUrunler= new List<string>();

 

        XmlNodeList xnList = xml.SelectNodes("/Urunler/Urun");

        foreach (XmlNode node in xnList)

        {

            string urunMarkasi = node["Markasi"].InnerText;

            string urunModeli = node["Modeli"].InnerText;

 

            xmldenGelenUrunler.Add(urunMarkasi + "-" + urunModeli);

            //seçtiğim ürünleri string bir liste içerisine atıyorum.

        }

    }
 

 

İlgili Makaleler

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

Yorum Gönder