Xml dosya okuma

Bir önceki yazıda Xml dosya oluşturma veri eklemeyi uygulamıştık. Bu yazıda oluşturduğumuz ve veri eklediğimiz xml dosyasındaki verileri nasıl okuruz görelim. Xml dosya okuma işlemini 3 ayrı; textbox, combobox ve listview kontrollerin de göstererek konunun öğrenilmesi için daha verimli hale getirdim.

Uygulama çalıştığında resimdeki gibi veriler kontrollerimizde gözükecek. Form üzerinde çalışma yaptığım uygulamada ilk olarak textbox lara veriyi nasıl çekebiliriz görelim. Aşağıdaki resimdeki gibi xml dosyamızın yapısı incelemenizde fayda olacak.

Daha önceden oluşturduğumuz xmldosyam.xml isimli dosyasmızın içindeki Kullanici3 daki veriyi textboxlarımızda gösterelim.

[cc lang=”c#”] XmlDocument doc = new XmlDocument();

doc.Load(“c:\\klasorum\\xmldosyam.xml”);
XmlElement root = doc.DocumentElement;
XmlNodeList kayitlar = root.SelectNodes(“/Rapor/kullanicilar”);

foreach (XmlNode secilen in kayitlar)
{
string sirasi = secilen.Attributes[0].InnerXml;

if (sirasi == “kullanici3”)
{

textBox1.Text = secilen[“adi”].InnerText;
textBox2.Text = secilen[“soyadi”].InnerText;
}
}[/cc]

Xml den combobox a dosyadaki bütün veriyi çekip gösterme;

[cc lang=”c#”] XmlDocument doc = new XmlDocument();

doc.Load(“c:\\klasorum\\xmldosyam.xml”);
XmlElement root = doc.DocumentElement;
XmlNodeList kayitlar = root.SelectNodes(“/Rapor/kullanicilar”);

foreach (XmlNode secilen in kayitlar)
{

comboBox1.Items.Add(secilen[“adi”].InnerText);
} [/cc]

Xml dosyasındaki verileri listview de gösterme;

[cc lang=”c#”]XmlDocument doc = new XmlDocument();

doc.Load(“c:\\klasorum\\xmldosyam.xml”);
XmlElement root = doc.DocumentElement;
XmlNodeList kayitlar = root.SelectNodes(“/Rapor/kullanicilar”);

foreach (XmlNode secilen in kayitlar)
{

ListViewItem lv = new ListViewItem();
lv.Text = secilen[“adi”].InnerText;
lv.SubItems.Add(secilen[“soyadi”].InnerText);

listView1.Items.Add(lv);
} [/cc]

“Xml dosya okuma” üzerine 11 yorum

  1. hocam birşey sormak istiyorum.
    peki xml dosyasındaki tagları texbox a veya listbox a nasıl atayabiliriz?
    MESUT
    POLAT
    Önek yukarıdaki xml dosya verilerinde bana gereken şey bu xml deki tag adları yani “AD,SOYAD” bu iki değeri listboxa nasıl aktarabilirim?

    yalin listbox ın text inde sadece şunu yazmasını istiyorum :
    AD
    SOYAD

    1. Dostum sorunu anladım. Database deki gibi kolon isimlerini de yazdırmak istiyorsun. Ama üzgünüm daha önceden denemediğim için cevap veremeyeceğim şimdilik…

    2. Merhaba uygulamanızı inceledim.Öncelikle emeğinize sağlık.Benim de buna benzer bir konuda sıkıntım var. Ben bir proje üzerinde çalışıyorum: örnek olarak anlatmak gerekirse ürünler diye xmlde veri tabanı oluşturdum ve ürün isimlerini listboxa özelliklerini de seçildiğinde textboxa aktarıyorum;ama ihtiyaç biraz gelişti ve her ürünün bir markası ortaya çıktı ben markaları comboboxa eklemeyi ve comboboxda seçilen isme göre ürün adlarını listboxa atmayı yapamadım böyle bir uygulama örneği elinizde var mı yada bana yol gösterebilirseniz çok sevinirim.
      iyi günler dilerim..

      1. Dostum bu işi linq ile yapabilirsin. linq to xml Türkçe arama yaptığında ihtiyacın olan bilgiyi bulursun. Konuna gelirsek, çözmek istediğin sorun şehir ilçe ilişkisi gibi.

        Örnek kod vereyim;

        XDocument xmlUrunler = XDocument.Load(“urun.xml”);
        XDocument xmlKategoriler = XDocument.Load(“kategori.xml”);
        var urunler = (from urun in xmlUrunler.Element(“Urunler”).Elements(“urun”)
        join kategori in xmlKategoriler.Element(“Kategoriler”).Elements(“kat”)
        on urun.Element(“kategorisi”).Value equals kategori.Element(“id”).Value
        select new
        {
        id = urun.Element(“id”).Value,
        urunadi = urun.Element(“urunadi”).Value,
        fiyat = urun.Element(“fiyati”).Value,
        kategori = kategori.Element(“kategoriadi”).Value
        }).ToList();

        foreach (var secilen in urunler)
        {

        ListViewItem lv = new ListViewItem();
        lv.Text = secilen.id.ToString();
        lv.SubItems.Add(secilen.urunadi.ToString());
        lv.SubItems.Add(secilen.fiyat.ToString());
        lv.SubItems.Add(secilen.kategori.ToString());
        lvUrunler.Items.Add(lv);

        }

  2. İyi Günler,
    Xml den çektiğim verileri datagirdviewde görüntülüyorum ancak xml’e ilk eklenen kayıt grdiviewde en üstte son eklenen kayıt en altta gözüküyor. Ben xml e son eklenen kaydı en üstte nasıl görüntüleyebilirim.

    Şube A
    OFFLINE
    08:36:26
    03.05.2013

    Şube A
    OFFLINE
    08:36:31
    03.05.2013

    XML bu şekildedir.

  3. merhaba
    radyo dinlemek için radyo url’lerini kolayca değiştirebileceğim bi yapı oluşturmak istiyorum
    listbox’a xml’deki “id”ye göre sıralama yapacak
    xml deki adlar listbox’ta görünecek ve seçildiğinde mediaplayer radyo kanalını çalmaya başlayacak
    tek amacım kapanan veya değişen radyo olduğunda bunu daha kolay şekilde değiştirebilmek
    konularınıza biraz baktım xml güncelleme radyo ekleme silme forma nasıl eklenir anlayamadım
    sizden ricam en azından xml’den veriyi çekip bunları isimlendirip listeleyerek çalmama yardımcı olmanız

    bu veya buna benzer bir xml den çalmak istiyorum

  4. Merhaba Öncelikle paylaşımınız için çok teşekkür ederim.
    çok işime yaradı ve XML oluşturma ve okuma işini çözdüm.
    fakat sizden bir konuda yardım istiyorum.
    E fatura dosyaları içerisinde cac:Item gibi node lar var bu alanları okutmada başarılı olamadım bu konuda yardımcı olabilirseniz sevinirim.

  5. merhaba hocam gercekten cok tskler paylaşım ıcın artı benım yapmak ıstedıgımse xmlden aldıgım verılerın sırasıyla olması yanı bırıncıyı aldı onu textboxa attı sonrada ıslemlerı yaptı bitince ıkıncıyı alacak onun ıcınde aynı seylerı yapacak yardımcı olurmusunuz

  6. selam ,

    hocam elimde xml ler var. lin şeklinde xmllerin kodları xml sitelerinde bulunmakta. xmlleri reklaamction,go, gibi şirketlerden alıyorum ve bunları blogger sitemde kullanmak istiyorum. bunun içi bana yardımcı olurmusunuz lütfen.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir