Merhabalar ,
Bugun XML Document nesnesini kulllanarak , XML belgesi üzerinden Insert , Delete ve Okuma işlemleri yapacagımız ufak bir windows uygulaması geliştirmek istiyorum.XML dosyasını oluşturmak için veritabanında kayıtlı bulunan Urunler isimli bir tabloyu dataset'e aktarıp , dataset nesnesi üzerinden XML dosyasını oluşturacağız.Urunler tablosunda bulunan kolonlar sırasıyla urunID , Urunad , katID ve fiyat olarak isimlendirilmiştir.Bu kolonlar XML belgesine birer xml elementi olarak yazdırılacaktır.
Windows formumun tasarımı ise şu şekilde olacak ;

verileri listView kontrolü üzerinde göstereceğim ve ayrıca satırları silmek için contextMenuStrip kontrolü kullanacağım.Seçilen satırlı elemana sağ tıkladıgımde Delete yazan bir menu item açılacak ve ona tıkladıgımda ilgili xml node'u , xml belgesinden silinecek.
Öncelikli olarak bu işlemleri gerçekleştirecek XML_Process isminde bir class yazarak işe başlamak istiyorum.

Öncelikle parametre olarak dataset alan ve writeXml methodu ile xml dosyasını belirlediğim ada göre oluşturan CreateFile adında bir method yazdım.Datasetin adı XML Belgesinin adı ile aynı olacak , ayrıca dataset'in adına xml'in root elementinin adı ilede aynı yapacagım ve bu ad tablonun adı olan Urunler olacak.Datatable ımın adı ile Urun olacak ve Urunler root elementinin altında Urun isminde element ler olacak. Her bir Urun elementi urunler tablosundaki bir satıra karşılık gelecek. XML_Dataset methodunda ise geriye XML dokumanı haline gelecek dataset'i döndürdüm.Bu arada CreateFile methodu dosyayı , uygulamamdaki exe dosyasının oldugu yerde yaratacak.Eğer başka bir path verseydim oradada oluşturabilirdi.
Şimdi Create XML File yazan butonun altına girip xml belgesini oluşturacağım ;

ve ayrıca formun load eventinde oluşturdugum xml dosyasının var olup olmadıgı kontrol ettim, eğer böyle bir belge var ise bu belgeyi alıp XML Document'in Load eventi ile RAM e yüklemesini söyledim.Ve ayrıca global düzeyde bir XMLDocument referansı oluşturdum.Çünkü uygulamamamın her yerinde bu referans üzerinden işlem yapacagım.
İlgili butona tıkladıgımda XML Dosyasını exe nin oldugu klasörde oluşturuyor.

Şimdi bu dosyaya yeri Urun element'leri eklemek için bir method yazalım.

Parametre olarak aldıgım XMLDocument nesnesi üzerinden 4 tane element yarattım ve bu elementlere method parametrelerinden aldıgım değerleri atadım.Daha sonra Urun isminde bir üst düğüm yarattım ve bu düğümün tipinin element oldugunu söyledim.Ve oluşturmuş oldugum child elementleri bu düğümün altına append ettim.Ve son olarakda bu düğümün bir üstünde olan Root elementine DocumentElement ile ulaşıp , oluşturdugum dugumu root'a ekledim. Ve yaptıgım değişiklikleri XMLDocument'in Save methodu ile kaydettim.
Şimdi ise Urun getirmek ve silmek için kullanacağımız methodları yazalım ;

UrunGetir methodunda DocumentElement.ChildNodes.Count diyerek dosyadaki tüm Urun elementlerinin sayısını aldım.Daha sonra bu sayı kadar dönen bir for döngüsü oluşturdum çünkü amacım Urun elementlerinin içindeki child elementlerin değerlerine ulaşmak ve bunları listview kontrolüne eklemek. Urun dugumunun altındaki 0. indexli Childnodes u list view item in tag ına attım çünkü UrunID değerine Urun silme işleminde ihtiyacım olucak.
Classımı yazma işini bitirdim , şimdi ise formun üzerine bir adet contextMenuStrip sürükleyip bırakıyorum.Ve delete adında bir menu item ekliyorum.Şimdi sıra geldi yazdıgım methodları kullanmaya !

örnekte göstermek istediğim sadece XMLDocument class'ı oldugu için diğer işlemlerin üzerinde durmadan geçiyorum.Şimdi f5 e basıp yazdıklarımızı test edelim.

evet xml dosyasındaki elementleri listview e atmayı başardım ve yeni element ekleyip listview de gösterdim.Şimdi birde ürünlere sağ tıklayarak silmeyi deneyelim.

evet xml dosyasından elementleri silebiliyoruz 
Herkeze mutlu kodlamalar : )