10 Ağustos 2009 Pazartesi

Xml dosyalarının .NET Ortamında C# ile Okunup, Yazılması

Bu makale serisinde, Xml dosyalarının .NET ortamında C# diliyle nasıl okunup yazıldığını göreceksiniz.

Öncelikle Xml .NET Framework Kütüphaneleri ve isimalanlarıyla, sınıfları üzerine konuşacağız. Daha sonra Xml dosyası nasıl okunduğunu, nasıl yazıldığını göreceğiz. Son olarak makalenin sonunda ADO.NET ve XML.NET' in avantajlarını göreceğiz.

Microsoft .NET XML İsimalanları ve Sınıfları
.NET Framework' de Xml dosyası üzerinde çalışmaya başlamadan önce .NET Runtime Kütüphanesinin bize sağladığı .NET isimalanlarını ve sınıflarını bilmemiz çok önemlidir. .NET bize Xml sınıflarını desteklemek için beş isimalanı sağlamaktadır. -System.Xml, System.Xml.Schema, System.Xml.Serialization, System.Xml.XPath ve System.Xml.Xsl.
System.Xml isimalanı önemli Xml sınıflarını içerir. Bu isim alanı Xml dökümanlarını yazmak ve okumak için gerekli birçok sınıfı barıdırmaktadır. Bu makalede biz reader ve write sınıfları üzerine yoğunlaşacağız. Bu sınıflar - XmlReader, XmlTextReader, XmlValidatingReader, XmlNodeReader, XmlWriter ve XmlTextWriter. Gördüğünüz gibi dört okuma ve iki yazma sınıfı bulunmaktadır.

XmlReader sınıfı dökümanları okumak için gerekli methodları ve property' leri içermektedir. Read methodu bir streamdeki node' u okumak için kullanılır. Okuma fonksiyonu dışında, bu sınıf döküman içerisindeki nodeları gezmek içinde methodlar barındırmaktadır. Bu methodların bazıları MoveToAttribute, MoveToFirstAttribute, MoveToContent , MoveToFirstContent, MoveToElement ve MoveToNextAttribute. ReadString, ReadInnerXml, ReadOuterXml, ve ReadStartElement okuma methodlarıdır. Bu sınıf ayrıca skip current node (bu node u atla ) ve move to next one gibi (bir sonraki ne gec) gibi methodlara sahiptir. Bu methodları örneklerimizde göreceğiz.

XmlTextReader, XmlNodeReader ve XmlValidatingReader sınıfları XmlReader sınıfından gelmektedir. Adlarından da anlaşılabileceği gibi textleri,nodeları ve schema' ları okumak için kullanılırlar.

XmlWrite sınıfı Xml dokümanlarına data yazmakta kullanılır. Bu sınıf birçok yazma methodunu içerir, bunlarıda örneklerimizde göreceğiz.

XmlNode sınıfı önemli bir rol üslemektedir. Her nekadar bu sınıf Xml' in bir node' unu temsil etse de, temsil ettiği bu node Xml dokümmanının kok node' u olabilme özelliğini taşımaktadır. Bu temel sınıfların özeti olan bir sınıf gibidir ve bir cok node ekleme, çıkarma ve değiştirme sınıflarına sahiptir. XmlNode sınıfından türetilmiş 3 temel sınıf ise XmlDocument, XmlDataDocument ve XmlDocumentFragment' tir. XmlDocument bize dökümanları açmayı ve kaydetmeyi sağlar.

XmlDataDocument ise ADO.NET data set nesneleriyle çalışmayı sağlar.

System.Xml isimalanı da birçok sınıfı içermektedir. Bunların bazıları ise XmlConvert, XmlLinkedNode, ve XmlNodeList' dir.

Xml dökümanını okumak
Basit örneğimizde, Verileri ekrana göstermek için books.xml dosyasını kullanacağız. Bu dosya Vs.NET örnekleriyle(samples) birlikte gelmektedir. Bu dosyayı bulup "C:\books.xml" dizinine taşıyınız. Bu dosya genelde

"C:\Program Files\Microsoft Visual Studio 9.0\Samples\1033\LinqSamples\Data\books.xml" dizininde bulunur. İsterseniz başka bir xml dosyasıda kullanabilirsiniz.
Bir XmlTextReader instance' ı yarattıktan sonra Read methodunu çağırarak okumaya başlayacağız.

Visual Studio da File->New Project->Visual c#->Console Application Seçelim ve Adı XmlReader olsun.


Hiç yorum yok:

Yorum Gönder