XML ve XSLT Kullanarak Dinamik ASP.NET Sayfaları Oluşturmak
16.03.2007 23:39:21
Merhaba arkadaşlar bu makalemizde Bir XML dökümanı oluşturup, oluşturduğumuz XML dökümanını XSLT ile sitil uygulayıp ASP.NET sayfalarında kullanacağız…
Puan:
     

XML ve XSLT Kullanarak Dinamik ASP.NET Sayfaları Oluşturmak 

Kısaca XML(Extensible Markup Language)

XML veri alışverişinde kullanılacak standart bir format olarak kullanılan bir dildir.  Uygulamalarımızı farklı platformalara taşımak istediğimizde en iyi çözümdür. XML belgelerine kendi etiketlerinizi ekleyebilir aynı veritabanlarındaki gibi istediğim fieldları gösterebiliriz. Application, dil, işletim sistemi vb. gibi kısıtlamalara bağlı değildir. Uygulamalar kendi veri yapılarını tanımlayabilir. Son derece güvenliği olduğu için veri paylaşımında yada dağıtımında sürekli kullanılır. Örnek olarak Haberler.XML’i oluşturalım;

<?xml version="1.0" encoding="utf-8" ?>
<Haberler>
    <Haber ID="1">
        <Baslik>Sem Göksu MVP Oldu</Baslik>
        <Tarih>bugünün tarihi işte…</Tarih>
        <Icerik>Bi tebriği hakettim J</Icerik>
    </Haber>
    <Haber ID="2">
        <Baslik>Sem Göksu AJAX Semineri</Baslik>
        <Tarih>Gelecekte…</Tarih>
        <Icerik>Bilmemki…</Icerik>
    </Haber>
    <Haber ID="3">
        <Baslik>Ajax güzel şey</Baslik>
        <Tarih>Gelecekte…</Tarih>
        <Icerik>güzel………..</Icerik>
    </Haber>
   <Haber ID="4">
        <Baslik>Ajax güzel şey 2</Baslik>
        <Tarih>Gelecekte…</Tarih>
        <Icerik>güzel………..</Icerik>
    </Haber>
   <Haber ID="5">
        <Baslik>Ajax güzel şey 3</Baslik>
        <Tarih>Gelecekte…</Tarih>
        <Icerik>güzel………..</Icerik>
    </Haber>
</Haberler>

Şimdi bu XML’i açtığımız da neler olacak bi bakalım :)

 

Ben bir şey anlamadım ziyaretçi nasıl anlasın. Bunu biraz biçimlendirelim. Ama nasıl?

Kısaca XSLT(Extensible Stylesheet Language Transformation)

Sitemizde haberleri farklı sitelerin de kullanması için XML’e döktük. Ama siteler Xml verisinin farklı bir formata dönüştürülmesini istiyor. XSLT standardı tam bu noktada karşımıza çıkıyor. XSLT, XML içeriğine sitiller uygulayarak sayfalarımızın HTML formatına dönüştürülmesini sağlar. Ayrıca xml üzerinde sıralama, filtreleme ve gruplama gibi işlemler yapabiliriz. Örnek olarak HaberlerSitili.xsl’i oluşturalım;

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
    <html>
    <body>
    <h1>Haberlerim...</h1>
    <table border="0" borderColor="gray" cellpadding="0" cellspacing="0" width="700">
   <tr bgcolor="Yellow" height="20">
                <td>ID</td>
                <td>Tarih </td>
                <td>Başlık </td>
                <td>Icerik </td>
  </tr>
    <xsl:for-each select="Haberler/Haber">
            <tr>
                <td>
                    <xsl:value-of select="@ID"/>
                </td>
                <td>
                    <font size="2" color="Blue">
                        <xsl:value-of select="Baslik"/>
                    </font>
                </td>
                <td>
                    <b>
                        <xsl:value-of select="Tarih"/>
                    </b>
                </td>
                <td align="right">
                    <xsl:value-of select="Icerik"/>
                </td>
            </tr>
    </xsl:for-each>
    </table>
    </body>
    </html>
</xsl:template>
</xsl:stylesheet>

Evet Şimdi bu oluşturduğumuz XML ve XSLT dökümanlarını birleştirerek HTML gibi bir çıktı alalım. Projemize bir sayfa ekleyelim;

İlk olarak sayfamızın namespacelerine System.XML ve System.XML.XSL’i ekleyelim.

Sonra Forlm’un loadıında;

VB.NET

 Dim xdoc As New XmlDocument()

 xdoc.Load(Server.MapPath("haberler.xml"))

 Dim xsltran As New XslCompiledTransform()

 xsltran.Load(Server.MapPath("HaberlerSitili.xsl"))
 xsltran.Transform(xdoc, Nothing, Response.Output)

C#NET

 XmlDocument xdoc = new XmlDocument();

 xdoc.Load(Server.MapPath("haberler.xml"));

 XslCompiledTransform xsltran = new XslCompiledTransform();

 xsltran.Load(Server.MapPath("HaberlerSitili.xsl"));

 xsltran.Transform(xdoc , null, Response.Output);

Şimdi sayfaımızı çalıştıralım;

 

Az önceki çirkin XML şimdi ne güzel oldu : )

Bu makalemizinde de sonuna geldik. Teşekkür eder iyi çalışmalar dilerim.

Sem GÖKSU
MCP | MCAD.NET | MCTS | ASP.NET MVP

Örnek Kodlar için mail adresimi kullanabilirsiniz
semgoksu@semgoksu.com 

Kaynaklar

www.codeproject.com

 
Puan: