C#’da bir çok farklı yol ile xml dosyası oluşturabilmekteyiz bu makalemizde Linq ile beraber gelen XDocument sınıfı yardımıyla XML dosyasını dinamik olarak oluşturmayı ve alt elemanları olarna XElement ve XAttribute’üde değinmiş olacağız.
XDocument ile XML Oluşturma
Öncelikle XDocument
‘de kaynak kullanmak açısından string türünde bir List
nesnesi oluşturuyoruz ve içerisine ben örnek olarak popüler 4 tarayıcının isimlerini yazdım.
XDocument’in en sevdiğim yönlerinden biri parametre olarak params object
veri türüne izin veren bir parametre geçmemiz sağlanmakta böylelikle hiyerarşik olarak bir değişkene nesneyi oluşturup sonrada Add
veya Append
gibi metodlar kullanmadan direk olarak nesne içerisine nesneni gömebiliyoruz ama hiyerarşik düzende dikkat edilmesi gereken bir durum var params object
türünde istenildiği kadar parametre geçilebildiğini söylemiştik buraya gidip new SqlConnection
diyerek SqlConnection
nesnesi oluşturabilmekteyiz ama projenin derlerken sorun oluşturmayacaktır fakat run time
‘da hata verecektir o yüzden XDocument
‘e parametre olarak XDocument
elementleri olan XElement
, XAttribute
gibi nesneleri parametre olarak geçiniz.
Şimdi kaynak olarak string
türünde List
nesnesi oluşturduğumuzu söylemiştirk şu şekilde oluşturuyoruz nesnemizi;
C#
1 | List<string> list = new List<string> { "Firefox", "Chrome", "Opera", "Internet Explorer" }; |
XDocument nesnesini hiyerarşik olarak oluşturma
C#
1 2 3 4 5 6 7 8 9 10 | XDocument doc = new XDocument( new XElement("dosya", new XElement("ad", new XAttribute("dosyaAdi", "Tarayicilar")), new XElement("tarih", new XAttribute("eklemeTarihi", DateTime.Now)), new XElement("bilgi", list.Select(x => new XElement("veri", new XAttribute("deger", x))) ) ) ); doc.Save(Server.MapPath("~/dosyalar.xml")); |
Üstteki kodlarımızda gördüğünüz üzere XDocument ile sanal olarak xml döküman nesnesi oluşturuyoruz ve Xelement ile node ekliyoruz node yani elementlere attribute(nitelik) eklemek için ise XAttribute nesnesinden faydalanıyoruz ardından Linq yardımıyla list.Select diyerek List elemanımızdaki tarayıcıları sırasıyla xml dosyamıza bilgi node’u olarak ekliyoruz.
En son olarak yazdıklarımızın pekişmesi adına alttaki xml çıktısına gözatabilirsiniz.
Sonuç(dosyalar.xml)
1 2 3 4 5 6 7 8 9 10 11 | <?xml version="1.0" encoding="utf-8"?> <dosya> <ad dosyaAdi="Tarayicilar" /> <tarih eklemeTarihi="2014-05-04T14:23:55.3816881+03:00" /> <bilgi> <veri deger="Firefox" ></veri> <veri deger="Chrome" ></veri> <veri deger="Opera" ></veri> <veri deger="Internet Explorer" ></veri> </bilgi> </dosya> |