Merhaba arkadaşlar. Bu makalemizde genelde bir yerlerden çektiğimiz, üzerine yazdığımız, hazır olarak kullandığımız; elle oluştursak bile harici bir xml dosyasında işlemlerimizi yaptığımız Xml dökümanlarını çalışma zamanında oluşturacağız.
Xml dökümanımızı oluşturmak için XmlDocument nesnesi oluşturuyorum öncelikle.
XmlDocument doc = new XmlDocument();
Ancak hemen belirteyim XmlDocument'in yazılabilmesi için System.Xml isim uzayını üste eklemeniz gerekiyor.
Şimdi dökümanımız için Xml deklarayonu(bildirimi) yapalım.
doc.CreateXmlDeclaration("1.0", "utf-8", "yes");
Versiyonunu, Encoding tipini ve standalone özelliğini verdik.(Bunları, temel XML kavramları olduğundan ayrıca açıklamadım.)
Sıra geldi kök elemanımızı yaratmaya.
XmlElement kok = doc.CreateElement("arabalar");
Kök elemanımızı da yarattık ve adına "arabalar" dedik.
Kökün altındaki elemanı yaratalım şimdi de.
XmlElement dal = doc.CreateElement("araba");
Buna da isim olarak "araba" dedim.
Bir attribute(özellik) yaratalım şimdi.
XmlAttribute ozellik = doc.CreateAttribute("gücü");
"gücü" isminde bir özelliğimiz var artık.
Özelliğe değer verelim.
ozellik.InnerText = "500 beygir";
Özelliği bir elemana verelim.
dal.Attributes.Append(ozellik);
"dal"a, yani "araba" elemanına "gücü" adında bir özellik eklemiş olduk.
Dal eleman içinde yer alacak alt elemanları tanımlayalım. Bu nesneyle çocuk elemanlar yaratacağız.
XmlElement detay = doc.CreateElement("marka");
"marka" adında bir eleman yarattık.
"marka" elemanına değer verelim.
detay.InnerText = "Anadol";
"marka" elemanını "araba" elemanına çocuk eleman olarak verelim.
dal.AppendChild(detay);
Artık marka, arabanın "child element"idir.
"model" adında bir eleman yaratalım.
detay = doc.CreateElement("model");
Dikkat ettiyseniz "detay" nesnesiyle yarattım, çünkü bu da "araba" için çocuk element olsun istiyorum.
detay.InnerText = "serce";
dal.AppendChild(detay);
kok.AppendChild(dal);//dal elemanını köke ekledim
doc.AppendChild(kok);//burası da kök elemanı, dökümana ekliyor
Şimdi bu xml dökümanını bir yere kayıt edelim.
doc.Save("c:\\araba.xml");
Save() metodu bizden dosya adını ister. Onu verdik ve bu metot ile kayıt ediyoruz.
Formumuza bir adet dataGridView atalım. Xml dökümanımızı orada da görelim.
DataSet ds = new DataSet();
ds.ReadXml("c:\\araba.xml");
dataGridView1.DataSource = ds.Tables[0];
Bir DataSet yaratıp, onunla kaydettiğimiz dosyayı okuyoruz ve bunu dataGridView'da gösterilmek üzere DataSource'una veriyoruz.
Kodu çalıştırdığınızda

şeklinde bir ekran görmelisiniz. Ayrıca C klasörünün altına baktığınızda araba.xml dosyasını görebilirsiniz.
Bir makalemiz daha burada son buluyor. Başka bir makalede görüşmek üzere.
Gürkan Alkan
İstanbul Üniversitesi Bilgisayar Mühendisliği