C# ile XML İşlemleri

XML'e Giriş

XML (Extensible Markup Language) Genişletilebilir İşaretleme Dili'nin kısaltmasıdır (Hartwell, 2017). Verileri depolamak ve taşımak amacıyla hem insan hem de bilgisayar tarafından okunabilecek şekilde tasarlanmıştır. XML yapısı element ve özelliklerden (attribute) oluşmaktadır. Elementler XML’in ana iskeletini oluşturur ve yapıyı tanımlamak için kullanılırlar. Özellikler ise elementlerin tanımlanmasında kullanılan yardımcı olan ifadelerdir.

Manuel XML Oluşturma

Manuel bir XML dosyası oluşturmak için NotePad gibi basit bir kelime işlemci programı kullanabilmek yeterlidir. Ancak daha karmaşık XML dosyaları oluştururken NotePad++ ya da Visual Studio gibi geliştirme araçlarından destek almak gerekebilir. Çünkü bu programlar sahip oldukları özellikler sayesinde XML tanımlarının programcı tarafından daha kolay ve hızlı bir şekilde yapılmasını sağlar.

XML Teknolojileri

XmlDocument, XmlReader, XmlWriter, XPathDocument ve LINQ to XML .Net Framework ortamında kullanılan XML teknolojilerinden bazılarıdır.

XmlDocument

XmlDocument, XML belgesini temsil eden bir sınıftır ve System.Xml isim uzayında yer almaktadır. Bu sınıf yardımıyla bir XML belgesi üzerinde okuma, yazma, düzenleme, silme vb. işlemlerin tamamı gerçekleştirilebilir. XmlDocument sınıfının Load() ve LoadXml(string xml) metotları kullanılarak XML belgeleri üzerinde işlemler gerçekleştirilebilir.

XPath

XPath, XML'i ayrıştırmak için tasarlanmış bir sorgu dilidir (Hartwell, 2017). Bir XML belgesindeki elementler ve özellikler arasında gezinmek için kullanılır. XPath ile bir XML belgesi üzerinde yer alan element ve düğümler (node) üzerinde kullanılabilecek sorgu ifadeleri Tablo 8.1.’de verilmiştir.

C# ile XML Dosyası Okuma

XmlDocument sınıfı ile gerçekleştirilen işlemlerde kullanılan dört (4) adet metot vardır. Bunlar; SelectSingleNode(string xpath), SelectNodes(string xpath), GetElementById(string elementId) ve GetElementsByTagName(string name)’dir.

SelectSingleNode(): XPath değeri ile eşleşen tek bir elementi seçmek için kullanılır.

SelectNodes(): XPath değeri ile eşleşen tüm elementleri seçmek için kullanılır.

GetElementById(): Id değeri verilen elementi seçmek için kullanılır.

GetElementsByTagName(): Tag adı verilen elementleri seçmek için kullanılır.

C# ile XML Dosyası Düzenleme

XML belgesi üzerindeki değişiklikler doğrudan bir element veya düğüm ile ilişkili olabileceği gibi elementin spesifik olarak bir özelliği (attribute) ile de ilgili olabilir. XML dosyaları üzerindeki düzenlemeler hem manuel olarak hem de C# gibi bir dil kullanılarak programlama tekniği ile de yapılabilir.

C# ile XML Dosyası Oluşturma

XML dosyaları manuel olarak hazırlanabileceği gibi bir programlama dili aracılığı ile de oluşturulabilir. Karmaşık ve element sayısının çok fazla olduğu durumlarda XML belgelerinin programlama yöntemiyle oluşturulması tercih edilmektedir. XmlDocument sınıfı kullanılarak XML belgesi oluşturulurken yeni bir element tanımlamak için CreateElement() metodu kullanılır.