Bir uygulama düşünün ki veriler xml dosyasında sunum ise web formunda olsun.
İşte tam aradığımız kontrol;
<
asp:Xml ID="Xml1" runat="server" DocumentSource="~/App_Data/anket.xml" TransformSource="~/App_Data/Anket.xslt"></asp:Xml>Verileri Xml dosyasında saklamının avantajlarından birisi de Xslt ile web uygulamalarına kolayca adapte edilebilmesidir. Örnek Xml verisi için Xslt kodu;
<?xml version="1.0" encoding="utf-8"?>ve sonuç;

Uzun zamandır Strong Type DataSet kullanmadığımdan basit bir uygulama yazmak belki bir kaç yenilik varsa da görmek istedim. Dataset içine basit birkaç data girebileceğim DataTable ekledim. Sql Server ile uğraşmamak için data kaynağı olarak xml' i uygun gördüm. Daha sonra aklıma keşke içi dolu bir xml dosyası olasa da test işlemlerini hemen yapsam.
Visual Studio 2008 kullanıyorsanız eğer Xml Schema Explorer penceresini bilirsiniz. O pencerede DataTable' a sağ tıklarsanız tam aradığım şey ile karşılaşırsınız.
Generate Sample XML

Sonuç;

Şöyle bir düşündüğümüzde veritabınında bulunan herhangi bir tablonun verilerini Xml biçiminde dosyaya yazmanın kaç yolu vardır acaba? Sabahları genelde işe erken gelirim, 1.5 saat kadar :).
Oturdum bir kaç örnek yaptım, paylaşıyorum tüm dünya ile. (Özgüvenin tavan yaptığı an)
Aklıma gelen ilk yöntem DataTable nesnesini kullanmak. Bu nesneyi sadece yazmak için kullanmak kaynak tüketimi açısından çok iyi bir seçim olmaz fakat kullanım kolaylığı açısında tercih edilebilir.

Diğer bir yöntem ise henüz Veri Katmanında (DataLayer) iken oracıkta xml formatına dönüştürüp XmlTextWriter ile cayır cayır yazmak.

Son yöntem ise daha önce şu yazıda kullandığım teknik ile (attribute yerine bu sefer node kullandım) XDocument ile manuel olarak xml dosyasını oluşturmak. Sanırım en zoru bu. Yanlış anlaşılmasın benim için kolay da hani ilk yapan için diyorum.

Xslt ile çalışıyorsanız bir kaç küçük ayrıntı.
- Xml verilerini sıralamak için for-each kalıbına
![]()
yazmak yeterli.
- Satırları ardışık olarak renklendirmek için de mod operatörü ve position() fonksiyonu bu işin üstesinden gelecektir.
![]()
Kodun tamamı;

Xml verisinin devamı için tıklayın...


Daha önceki "Web Sitemiz .." başlıklı bir kaç yazımda Web Part' lar hazırlamıştım.
Yeni bir kontrol daha; Tcmb günlük döviz bilgileri.
Uygulamayı indirmek için tıklayın.
Kullanım kolaylığı için 2 adet özellik eklendi. 
Bu tip uygulamaları yaparken kaynağın kopyası üzerinde çalışmayı tercih ederim. Hız açısından.


Data kaynağınız xml olduğunda okuma veritabanından okumak kadar kolay olmayabilir. XmlDataSorce ile bu işlem çok kolay hale getirebilir.

Kodu biraz inceleyelim;
XmlDataSource nesnesinin DataFile özelliği (xml) data kaynağının yolunu ister. Bu disk üzerinde bir dosya olabileceği gibi bir rss dökümanı da olabilir.
Önemli olan DataFile ile belirttilen (xml) data içinden ne istenildiğidir. Bunu yapmanın en pratik yolu xpath kullanmak olacaktır.
XmlDataSource nesnesinin XPath özelliği ile de bunu belirtmek gerekir.

Data kaynağını belirttikten sonra bunu gösterecek bir kontrole ihtiyaç var. Benim seçimim Repeater olacak. (DataList yada Grid de kullanılabilir). ItemTemplate içinde göstermek istenilen node adı XPath metoduna parametre olarak verilir ve değeri gösterilir.
Örnek proje.