C#’ta XML Kullanımı

02 Mart 2010 – 21:00 XML veri paylaşımının etkin olduğu sitelerde kullanılan basit veri paylaşım yöntemidir.Daha basitleştirilerek anlatmak gerekirse haber sitelerinin yayınlarını XML formatında yaparak diğer sitelerdede bu haberlerin kullanılmasını sağlaması gibi.
Şimdi gelelim C#’ta XML’i nasıl kullanıcağımıza öncelikle XML dosyamızı programın çalıştığı dizinle aynı dizine koyalım(farklı yerede olabilir dosya yolu belirtmemek için örnek verdim).Daha sonra programa XML için kullanıcağımız kütüphaneyi tanımlayalım.
1 | using System.Xml; |
Kütüphanemizi tanımladıktan sonra
1 2 3 | XmlDocument myDoc = new XmlDocument(); XmlElement myElement; myDoc.Load(@"ornek.xml"); |
örneğimizi yukarıdaki şekilde load ederiz.XML’de temel olarak bilinmesi gereken child kavramıdır.XML hiyerarşik yapı üzerine kuruludur.Dosyamızı açtıktan sonra
1 | for (int i = 0; i < myDoc.ChildNodes.Count; i++) |
yukarıdaki döngüyle XML’in child sayısını öğrenebilir ve içeriğini tarayabiliriz.Örneğimize geçersek
1 2 3 4 5 6 7 8 9 10 11 12 | <?xml version="1.0" encoding="ISO-8859-9" ?> <kitaplar> <kategori KatAdi="Bilgisayar"> <kitap Adi="Kim Korkar C#'dan" Yayinci="Alfa Yayinlari" Fiyat="5" /> <kitap Adi="Herkes için SQL" Yayinci="Beta Yayinlari" Fiyat="13" /> </kategori> <kategori KatAdi="Saglik"> <kitap Adi="Sifali Bitkiler" Yayinci="Remzi Kitabevi" Fiyat="12" /> <kitap Adi="YOU" Yayinci="Sabah Yayinlari" Fiyat="11" /> <kitap Adi="sagliğiniz" Yayinci="YKB Yayinlari" Fiyat="3" /> </kategori> </kitaplar> |
şeklinde örneğimiz olsun.Buradan “Kim Korkar C#’dan” verisine ulaşmak istersek
1 | MessageBox.Show(myDoc.ChildNodes[1].ChildNodes[0].ChildNodes[0].Attributes[0].Value.ToString()); |
Yukarıdaki kod bloğunu kullanabiliriz.Açıklamak gerekirse;
1 2 3 4 | myDoc.ChildNodes[1] // kitapları seçicektir myDoc.ChildNodes[1].ChildNodes[0] // <kategori KatAdi="Bilgisayar"> child 'ini seçecektir myDoc.ChildNodes[1].ChildNodes[0].ChildNodes[0] // <kitap Adi="Kim Korkar C#'dan" Yayinci="Alfa Yayinlari" Fiyat="5" /> child 'ini seçecektir myDoc.ChildNodes[1].ChildNodes[0].ChildNodes[0].Attributes[0] // Adi="Kim Korkar C#'dan" seçecektir ve Value ile değeri alacaktır.</kategori> |
XML’de bilinmesi gereken diğer noktada ChildNodes aşağı doğru hiyerarşik yapıyı tarar.Örneğin kitapların altındaki kitap kategoriler ve kategoriler altındaki kitaplar gibi.
Attributes ise soldan sağa doğru tarar yani üzerinde bulunulan child’in özelliklerini tarar.Yukarıda görüldüğü gibi Attributes[0] ile kitabın ilk özelliği yani “Kim Korkar C#’dan” kısmına eriştik.
Projeyi İndirmek için
RapidShare
Yazar : Mertcan Kurtaran
Etiketler: ”C#, xml, XML kullanımı”
3 yorum yapılmış
XML dosyasına md5 tabanlı hash satırı eklemem lazım :S
8 Mart 2011 - 23:55
myDoc.ChildNodes.Count ile kaç adet kategori olgudunu ögrenebiliyoruz ama o kategori altında kaç kitap oldugunu nasıl hesaplayabiliriz.
Bilgisayar kategorisinde 2 kitap Sağlık kategorisinde 3 kitap bulunmakta. bunun sayısını count ile alabilir miyiz ? şimdiden teşekkürler.
23 Temmuz 2011 - 18:26
Yukarıdaki örneğe istinaden Bilgisayar kategorisindeki kitap sayısı aşağıdaki şekilde alınabilir.
myDoc.ChildNodes[1].ChildNodes[0].Count
24 Temmuz 2011 - 09:45