Run-Time'da XML Dökümanı Oluşturmak

Yazar: Gürkan Alkan
Kategori: XML WEB Servisleri
Eklenme Tarihi: 22.12.2008 10:04:44



Bu makalemizde Xml dökümanımızı çalışma zamanında oluşturup, formda da göstereceğiz. (XmlDocument, XmlElement, XmlAttribute)

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


Gürkan Alkan

1986 İstanbul doğumludur. İstanbul Üniversitesi Bilgisayar Mühendisliği 4. sınıf öğrencisidir. Geliştirdiği kişisel projelerle yazılım hayatına devam etmektedir.
Bu makaleye ilk yorum yapan siz olun.

Yorumunuz