C# XML Dosya Oluşturma, dersimiz ile XML üzerine işlemler ders serimizin ikinci dersini vermiş olacağım.
C# XML Dosya Oluşturma
Bu dersimizde başlıktan da anlayacağınız üzere C# ‘ta kod ile XML dosya oluşturmayı göreceğiz. Hem kodları vereceğim hemde kodları izah etmeye çalışacağım.
Bu dersimiz için bir form tasarımı yapmamız gerekiyor ancak bu ders serisinde form tasarımı ile ilgili bir görsel vermeyeceğim. Çünkü bu XML ders serisi Github projemde yerini almıştır. Bu ders serisi bitene kadar projeyi Github’a yüklemeyeceğim çünkü diğer dersler ile ilgili kodlar da orada olacak.
Şimdi senaryomuz şu şekilde olacak.
Bir projemizde database yerine XML kullanmak istiyoruz. Bu projemizde de sadece çok basit (saçma derecede basit :) ) anlamda personel takibi yapmak istiyoruz. Örneği acayip saçma basit vermemin sebebi sadece koda ve ders başlığına odaklandığım için. ;)
Öncelikle XML ile işlemler yapabilmek için aşağıdaki namespace’leri ekleyelim.
using System.Xml; using System.Xml.Linq;
Şimdi kodlarımıza geçelim. Projemde bu işlem bir metod içerisindedir. Metodu olduğu gibi buraya yapıştıracağım sonra da kodları açıklayacağım.
En dış kısma aşağıdaki değişkenlerimizi ve tanımlamamızı yapalım.
XDocument xDoc = new XDocument(); string directory_path = _000_Classlar.Global.AppPath + "//XML"; string file_path = _000_Classlar.Global.AppPath + "//XML//Personeller.xml";
Buradaki “_000_Classlar.Global” kısmı “System.Windows.Forms.Application.StartupPath;” ‘a gitmektedir. _000_Classlar adlı klasör içerisindeki Global adlı class içerisinde tanımlıdır. Bu kod bize *.EXE dosyasının bulunduğu klasör yolunu verir bize.
Şimdi kodlarımıza geçelim.
void Load_Or_Create_XML() { // eğer bu klasör yoksa klasörü açacak if (Directory.Exists(directory_path) == false) { Directory.CreateDirectory(directory_path); } // eğer bu xml dosya yoksa temel bir xml dosyası oluşturacağız. if (File.Exists(file_path) == false) { // verdiğimiz xml dosya yolunda xml dosya oluşturuluyor. FileStream fs = new FileStream(file_path, FileMode.OpenOrCreate); // temel bir xml dosyası hazırlıyoruz. string YazilacakIcerik = "<?xml version=\"1.0\" encoding=\"utf-8\" ?> " + Environment.NewLine + "<Personeller> " + Environment.NewLine + "</Personeller>"; fs.Flush(); fs.Close(); // oluşturulan xml dosyasının okunabilmesi için gerekli olan şeyleri içerisine yazdık. File.AppendAllText(file_path, YazilacakIcerik); // xml dosyasını yükledik xDoc = XDocument.Load(file_path); lbl_bildirim.Text = "XML Dosya Oluşturuldu ve Yüklendi."; } else { // zaten bir xml dosyası vardır ve onu yükledik. xDoc = XDocument.Load(file_path); lbl_bildirim.Text = "XML Dosya Yüklendi."; } // xml dosyamızdaki verileri datagirdview de gösterdik. DataGridView_Doldur(file_path); }
Yukarıdaki metodumuz bir XML dosyası oluşturma ve oluşturulan dosyayı yüklememizi sağlayacaktır.
Kodlarımızı açıklayalım.
- Öncelikle *.EXE dosyamızın olduğu klasörde (bin/Debug) XML adında bir klasör var mı yok diye kontrol ediyoruz. Eğer bu klasör yok ise klasörü açıyoruz.
- Klasör kontrolünden sonra Personeller.XML dosyasının olup olmadığına bakıyoruz. Eğer böyle bir dosya yok ise;
- FileStream kullanarak OpenorCreate modu ile dosyayı Create ediyoruz.
- Oluşturduğumuz dosya içerisine yazacağımız veriyi (YazilacakIcerik) hazırlıyoruz. Neden bunları yazıyoruz derseniz bu dersteki notları okuyun.
- Hazırladığımız string veriyi, oluşturduğumu XML dosyasına yazıyoruz.
- Verileri yazdıktan sonra en dışta tanımladığımız xDoc nesnesine yüklemesini yapıyoruz.
- Yüklemeyi yaptıktan sonra da forma eklediğimiz bir label aracılığı ile bildirim veriyoruz.
- Klasör kontrolünden sonra Personeller.XML dosyasının olup olmadığına bakıyoruz. Eğer böyle bir dosya var ise;
- En dışta tanımladığımız xDoc nesnesine yüklemesini yapıyoruz.
- Yüklemeyi yaptıktan sonra da forma eklediğimiz bir label aracılığı ile bildirim veriyoruz.
- Son olarak XML dosyası içindeki verileri DataGridView’de gösteriyoruz. (Bu başka dersin konusu olduğundan dolayı kodları burada vermiyorum.)
**********************************************************
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.
- √ – XML Nedir? Kullanımı, Temel Özellikleri ve Örneği
- √ – XML Oluşturma
- √ – XML Verileri Gridde Gösterme
- √ – XML Veri Ekleme
- √ – XML Veri Güncelleme
- √ – XML Veri Silme
- √ – XML İşlemleri Class Hazırlama
- √ – 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.
- √ – DataSet ile XML Dosyası Nasıl Oluşturulur
- √ – XML Dosyası ile DataSet Nasıl Oluşturulur ve Okunur?
- √ – 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.
- √ – XML dosyasında nasıl arama yapılır?
- √ – Bir XML dosyasında filtreleme
- √ – 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.
- √ – 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.
- √ – Excel’den XML dosyası nasıl oluşturulur
- √ – XML dosyasından bir TreeView nasıl oluşturulur
Hatta bu listeyi, bu serideki her yazının altına eklerim.
**********************************************************
C# XML Dosya Oluşturma dersimiz 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.
string directory_path = _000_Classlar.Global.AppPath + “//XML”;
string file_path = _000_Classlar.Global.AppPath + “//XML//Personeller.xml”;
bu kodda bende hata veriyor. yardımcı olur musun ?
özellikle _000_Classlar.Global.AppPath kısmı
_000_Classlar.Global.AppPath bu kısım benim projeme özeldir. Burada demek istediği;
Projemde _000_Classlar adında bir klasörüm var. Bu klasörde Global adında bir class dosyam var. Bu class dosyamda da AppPath adında string bir public değişken var. Bu değişkenimin değeri de
Bu da programın çalıştırıldığı klasör yolunu bize verir.
Yani buradaki asıl kod System.Windows.Forms.Application.StartupPath + “//XML//Personeller.xml” olmuş oluyor.