İlginizi Çekebilir
  1. Ana Sayfa
  2. C Sharp

C# XML ile TreeView Nasıl Doldurulur?

C# XML ile TreeView Nasıl Doldurulur?
+ - 0

C# XML ile TreeView Nasıl Doldurulur? , dersim ile C# XML Üzerine İşlemler ders serimize devam ediyorum. Bu dersimde XML dosyasındaki verileri TreeView nesnesinde nasıl göstereceğimizi anlatmaya çalışacağım. XML’deki verileri Node olarak TreeView’e ekleyeceğiz. Bu ders XML Üzerine İşlemler serimizin son dersidir. İleride XML hakkında başka dersler eklersem bu başlığın altına eklerim.

C# XML ile TreeView Nasıl Doldurulur?

TreeView şahsen çok fazla kullandığım bir nesne değil ancak hiç kullanmadığım bir nesne de değil. Bir kaç kere kullanmıştım. Eh, aslında bu dersin pek bir anlamı yok olarak görebilirsiniz ama var! Nasıl mı diyorsunuz?

Diyelim ki, projenizde çok fazla form ve işlem var. Böyle bir program için menü hazırlamak ne kadar zor olacaktır. Böyle bir proje için menü olarak TreeView  nesnesi kullanabilirsiniz. Bu nesneyi de SQL ‘deki bir tablonuzdan ya da bir XML dosyasında tuttuğunuz menü isimlerini TreeView’e doldurarak kullanabilirsiniz. Bu ve bu gibi işlemler için bu dersin içeriği size faydalı olabilir.

Neyse, şimdi dersimize geçelim. Öncelikle kodlarımızı verelim.

        private void Btn_xml_den_treeview_Click(object sender, EventArgs e)
        {
            XmlDataDocument xmldoc = new XmlDataDocument();
            XmlNode xmlnode;
            FileStream fs = new FileStream(_000_Classlar.Global.AppPath + "\\_023_XML_Islemleri\\XML\\Proje.xml", FileMode.Open, FileAccess.Read);
            xmldoc.Load(fs);
            xmlnode = xmldoc.ChildNodes[1];
            treeView1.Nodes.Clear();
            treeView1.Nodes.Add(new TreeNode(xmldoc.DocumentElement.Name));
            TreeNode tNode;
            tNode = treeView1.Nodes[0];
            AddNode(xmlnode, tNode);
        }

        private void AddNode(XmlNode inXmlNode, TreeNode inTreeNode)
        {
            XmlNode xNode;
            TreeNode tNode;
            XmlNodeList nodeList;
            int i = 0;
            if (inXmlNode.HasChildNodes)
            {
                nodeList = inXmlNode.ChildNodes;
                for (i = 0; i <= nodeList.Count - 1; i++)
                {
                    xNode = inXmlNode.ChildNodes[i];
                    inTreeNode.Nodes.Add(new TreeNode(xNode.Name));
                    tNode = inTreeNode.Nodes[i];
                    AddNode(xNode, tNode);
                }
            }
            else
            {
                inTreeNode.Text = inXmlNode.InnerText.ToString();
            }
        }

Kodlarımızı açıklamam gerekirse;

  1. Bir XmlDataDocument nesnesi tanımlıyoruz.
  2. Bir XmlNode nesnesi tanımlıyoruz. Bu XML dosyasındaki Node yani elementleri ayrıştırabilmemiz için gerekli.
  3. FileStream ile XML dosyamızı okuyoruz.
  4. Okuduğumuz dosyayı xmldoc nesnesine yüklüyoruz.
  5. xmldoc ‘a yüklediğimiz verilerin ilk node yani elementini alıyoruz.
  6. TreeView’i temizliyoruz.
  7. TreeView’e XML’deki ilk elementi ilk node olarak ekliyoruz.
  8. Bir TreeNode tanımlıyoruz.
  9. TreeView’deki ilk nodeyi (az önce ekledik) tnode nesnesine ekliyoruz.
  10. AddNode metodumuzu kullanarak alt node ‘leri TreeView’e ekliyoruz.

AddNode();

  1. XmlNode, TreeNode ve XmlNodeList nesne tanımlaması yapıyoruz.
  2. Metoda gönderdiğimiz XmlNode parametresindeki nesnesin alt yani çocuk düğümü var mı diye kontrol ediyoruz
    1. XmlNodeList nesnemize, metodumuza gelen inXmlNode içerisindeki tüm node’leri atıyoruz.
    2. XmlNodeList içindeki item sayısı ile for döngüsü kuruyoruz.
    3. Yukarıda tanımladığımız XmlNode xNode nesnesine inXmlNode içindeki i index numarasında olan itemi atıyoruz.
    4. Tanımladığımız ve metodumuza parametre olarak verdiğimiz TreeNode ‘a yeni node ekliyoruz.
    5. TreeNode tNode; olarak tanımladığımız nesneye aynı nesneyi tekrar ekliyoruz.
    6. AddNode() metodumuzu tekrar çağırıyoruz.
  3. Metoda gönderdiğimiz XmlNode parametresindeki nesnesin alt yani çocuk düğümü yok ise
    1. XML dosyasındaki ilgili node yani element içindeki veriyi alıyoruz.

Burada önce TreeView’e node’leri ekliyoruz. Ta ki bulunan node’nin alt bir nodesi kalmayana kadar. Hiç alt nodesi olmayan bir node’ye denk geldiysek o node veri nodesidir.

 

Ekran Görüntüsü;

C# XML ile TreeView Nasıl Doldurulur

 


NOT: Bu dersi Github Projemde bulabilirsiniz.

 

**********************************************************

C# XML Üzerine İşlemler

Şuanki planıma göre toplamda 17 yazılık bir seri olacak. Genel başlıklar ise aşağıdaki gibi olacak. Elbette liste değişebilir. Belki bazılarından vazgeçerim belki dersleri birleştiririm belli olmaz.

  1. √ – XML Nedir? Kullanımı, Temel Özellikleri ve Örneği
  2. √ – XML Oluşturma
  3. √ – XML Verileri Gridde Gösterme
  4. √ – XML Veri Ekleme
  5. √ – XML Veri Güncelleme
  6. √ – XML Veri Silme
  7. √ – XML İşlemleri Class Hazırlama
  8. √ – XML URL’den Okuma
    • Bu ders için ek bir ders açmamaya karar verdim.  file_path değişkenine xml url si yazmanız yeterli olacaktır.
  9. √ – DataSet ile XML Dosyası Nasıl Oluşturulur
  10. √ – XML Dosyası ile DataSet Nasıl Oluşturulur ve Okunur?
  11. √ – SQL’den bir XML dosyası nasıl oluşturulur
    • Bu ders içinde ek bir ders açmamaya karar verdim. SQL server bağlantısı yapıp bir select sorgusunu dataset’e atamasını yaptıktan sonra 9. maddedeki işlemleri uygulayabilirsiniz.
  12. √ – XML dosyasında nasıl arama yapılır?
  13. √ – Bir XML dosyasında filtreleme
  14. √ – XML’den veritabanına veri nasıl eklenir
    • Bu ders içinde ek bir ders açmamaya karar verdim. DataSet’e eklediğimiz verileri for döngüsü ile sql’e kaydet işlemi yapıyoruz sadece. Bu sebeple ek ders eklemeye gerek yok arkadaşlar.
  15. √ – XML’den Excel dosyası nasıl oluşturulur
    • Bu dersi hazırlarken kodlarda bir sorun yaşadım ve o sorunu çözemedim. Bu sebeple bu dersi iptal ediyorum arkadaşlar. Elbette bu kodlar çok önceden elimde vardı. büyük ihtimalle bu sebeple çalışmadılar.
  16. √ – Excel’den XML dosyası nasıl oluşturulur
  17. √ – XML dosyasından bir TreeView nasıl oluşturulur

Hatta bu listeyi, bu serideki her yazının altına eklerim.

**********************************************************

 

Bu dersimizde bu kadar arkadaşlar. Diğer derslerimizde görüşmek üzere…

C Sharp Eğitim Seti eğitimi sayfasına gitmek için tıklayınız.

Derslerime özel olarak hazırladığım Github Projeme buradan ulaşabilirsiniz…

Takipte ve Sağlıcakla kalın. ?

Bu yazıya tepkiniz ne oldu?

Yazar Hakkında

Lise Ağ Sistemleri ve Yönetimi bölümü, üniversite Bilgisayar Programcılığı bölümü Ön Lisans, Yönetim Bilişim Sistemleri Lisans öğrenimi aldım. Askerlik görevimi tamamladım. Uzmanlık alanım; C# ve SQL Programlama dilleri ile müşteri odaklı, kullanıcı dostu ERP ve CRM gibi sistemleri geliştirmektir. Ayrıca şuanda PHP ve MYSQL alanında projeler geliştirmekteyim. C++, Phyton, Xamarin, MVC gibi konuları öğrenmek ve kendimi geliştirme çabası içerisindeyim. Discord için: https://discord.gg/FBxZeHu9

Değerli yorumlarınızı bekliyorum. :)