1. Ana Sayfa
  2. C Sharp

C# XML İşlemleri Class Hazırlama

C# XML İşlemleri Class Hazırlama
+ - 0

C# XML İşlemleri Class Hazırlama, dersimiz ile C# XML Üzerine İşlemler ders serimize devam ediyoruz. Bu dersimizde daha önceleri bahsettiğim C# Nesne Yaklaşımlı SQL Modelleme dersimde olduğu gibi bir işlem yapacağız. Aslında bu ders teknik olarak XML konulu bir ders gibi görünmüyor ama dersin sonunda amacımızı anlayacaksınız. Kaldı ki bu konuyu farklı amaçlarda da kullanabilirsiniz. Şimdi dersimize geçelim.

C# XML İşlemleri Class Hazırlama

Öncelikle yukarıda verdiğim linkteki derse bir göz atmanızı istiyorum. Çünkü bu dersimizin temelinde o dersin içeriği olacak. Temelde nesne yaklaşımlı sql modelleme olacak üzerine XML işlemlerini ekleyeceğiz. Dersimize geçelim.

Öncelikle Visual Studio’da Solution Explorer’de proje adı üzerinde sağ tık yaparak Add >> New Folder diyoruz. Açılan klasöre Classlar adı veriyoruz. Classlar klasörünün üzerinde tekrar sağ tık yapıyoruz ve Add >> Nes Folder diyip adını Models yapıyoruz.

NOT: Siz farklı isimler kullanabilirsiniz.

Models klasörümüzün üzerinde tekrar sağtık yapıp Add >> Class diyoruz ve Class’ımızın adını XML_Models yapıyoruz.

Class’ımız açıldığında ;

    class XML_Class
    {

    }

şeklinde boş olarak gelecek. İlk işimiz olarak classımızı public yapıyoruz.

    public class XML_Class
    {

    }

yukarıdaki gibi görünecek…

Şimdi XML dosyamızdaki Root elementimizin altında olan ana elementimizi bir tablo gibi düşünerek, bu ana elemente ekleyeceğimiz verilere göre modellemesini yapıyoruz.

public class Personeller
{
    public string Adi { get; set; }    //public string Adi = "";
    public int ID = 0;                 //public int ID { get; set; }
    public string Soyadi = "";         //public string Soyadi { get; set; }
}

Personeller.XML dosyamıza uygun bir şekilde modellememizi yaptık. Yukarıda dikkat ederseniz iki farklı tanımlama mevcut. İki türlü tanımlama da işimize yarayacaktır. İlk sıradaki gibi tanımlama yapacaksanız; prop yazıp iki kere TAB tuşuna basın. Otomatik tanımlayacaktır. (prop TAB TAB)

BİLGİ: Yukarıdaki modelleme de değişkenleri prop ile tanımlarsanız. ( public string Adi { get; set; } ) bu değişkene yapılan referansları görebilirsiniz. Yani kaç kere kullanıldığını. Aşağıdaki ekran görüntüsünde görebilirsiniz.

C# XML İşlemleri Class Hazırlama

 

Modelleme işlemimiz bu kadar. Şimdi Kaydetme işlemini nasıl yaptığımıza bakalım.

        /// <summary>
        /// Personeller XML dosyasına Persone 
        /// </summary>
        /// <param name="per">Personeller Class'ı </param>
        public static void Personeller_Kaydet(Personeller per)
        {
            string file_path = _000_Classlar.Global.AppPath + "//XML//Personeller.xml";
            XDocument xDoc = new XDocument();
            xDoc = XDocument.Load(file_path);

            XElement rootElement = xDoc.Root;
            XElement newElement = new XElement("Personel");

            XAttribute idAttribute = new XAttribute("id", per.ID);
            XElement adiElement = new XElement("ad", per.Adi);
            XElement soyadiElement = new XElement("soyad", per.Soyadi);

            newElement.Add(idAttribute, adiElement, soyadiElement);
            rootElement.Add(newElement);
            xDoc.Save(file_path);
        }
  1. İlk olarak metodumuz için summary hazırladık. Summary hakkında bilgi için buraya tıklayabilirsiniz.
  2. Tanımladığımız metoda, hemen yukarısında tanımladığımız class’ı veriyoruz. Yani metodumuz bir class’ı parametre olarak alıyor.
  3. _000_Classlar klasöründeki Global class’ımızda yer alan AppPath değişkeninin değerini (EXE dosyasının yolu) kullanrak XML dosyamızın yolunu hazırlıyoruz.
  4. XML dosyamızı yüklüyoruz.
  5. Root yani kök elementimizi alıyoruz.
  6. Yeni bir element oluşturacağımız için bir element tanımlaması yapıyoruz.
  7. Ekleyeceğimiz Elemente bir attribute yani özellik eklemesi yapıyoruz.
  8. Ekleyeceğimiz ana elemente adı ve soyadı elementlerini ekleyeceğimizi belirtiyoruz.
  9. Ana elementimize, Personeller Class’ımızda yer alan verileri ekliyoruz.
  10. Ana elementimizi, Root elementimize ekliyoruz.
  11. Dosyamızı kaydediyoruz.

Kaydı yapacak olan kodlarımız buraya kadardı arkadaşlar. Şimdi yukarıdaki kodlarımıza dikkat ettiğinizde, metodumuz bir class ‘ı parametre olarak alıyor. Verdiğimiz parametrenin adını “per” olarak belirledik. Elementimizi oluştururken verilerimizi de Personeller Class’ında yer alan değişkenlere atanmış verileri kullanıyoruz.

Burası bizim arka yüzümüz olsun. Şimdi formlarımız içinde nasıl kullanacağımızı görelim.

 

Kullanımı

        void XML_Veri_Ekle_2()
        {
            XML_Class.Personeller per = new XML_Class.Personeller()
            {
                ID = Convert.ToInt32(txt_id.Text),
                Adi = txt_ad.Text,
                Soyadi = txt_soyad.Text,
            };
            XML_Class.Personeller_Kaydet(per);
        }

Gördüğünüz gibi, XML_Veri_Ekle_2 metodumuz içinde yani tanımladığımız Class içerisindeki Personeller Class’ına erişip, Class’ımızda tanımladığımız değişkenlere verilerimi atıyoruz. Sonrasında yine aynı Class’ımızda yer alan kaydetme metodunu çağırıp, verilerimi gönderdiğimiz Class’ı parametre olarak gönderiyoruz ve kayıt işlemimiz tamamlanıyor.

**

Burada verdiğim bu ders mantıksız görünebilir ancak karışık görünen kodları arka plana atıp ön tarafta sade, basit ve anlaşılır kodlar olması, bana sorarsanız çok daha mantıklı olacak. Üstelik bu işlemi birden fazla yerde kullanmak gerekecekse ki gerekebilir her yerde XML kodları olmasının önüne geçmiş ve XML dosyamızda yapacağımız bir değişiklik sonrasında formları gezmek yerine sadece class’ı güncelleyerek zaman kazanabiliriz.

Umarım bu dersim hoşunuza gitmiştir ve umarım sizler için kullanışlı bir noktaya değinebilmişimdir.

 

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

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.

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

 


C# XML İşlemleri Class Hazırlama dersimde bu kadardı 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. :)