KMRT BSRN

"Hiç kimsenin ilgisine ihtiyaç duymadığın gün olgunlaşırsın. Hiç kimseden beklentiye girmediğin gün yara almazsın. Ve hiç kimseye bağımlı kalmazsan kazanırsın." OSHO

ASP.NET – XML Dosyadan XSLT ile HTML Oluşturma

Yorum bırakın


Daha önceden yazmayı düşündüğüm ama unuttuğum bir konuydu. Bu konuyla ilgili bir yazı yada görsel bir ders de yayınlamayı düşünüyorum. Ama öncesinde biraz heyecanlandıracak bir şekilde olayı anlatmak istiyorum.

Bazen elimizdeki bir XML içeriğin web ortamında ekrana istediğimiz bir HTML şablon içinde listelenmesini isteyebiliriz. Bunu yapmanın birçok yolu var. Ama benim anlatmaya çalıştığım bunu XSLT dosya yardımı ile, C# kodu yazmadan gerçekleştirmek.

Fazla uzatmadan hemen başlıyoruz..

Bir ASP.NET projesi açıyoruz.

TestXmlFile.xml isimli bir XML dosya ekliyoruz.

Örneğin elimizde aşağıdaki gibi bir XML dosya olsun;

<?xml version=1.0 encoding=utf-8 ?>

<?xml-stylesheet type=”text/xsl” href=”TestXsltFile.xslt”?>

<siniflar>

    <sinif sinifadi=s1>

        <ders derskodu=d1>

            <dersadi>Matematik</dersadi>

            <konular>

                <konu konukodu=k1>

                    <konuadi>Sayılar</konuadi>

                </konu>

                <konu konukodu=k2>

                    <konuadi>Trigonometri</konuadi>

                </konu>

                <konu konukodu=k3>

                    <konuadi>Logaritma</konuadi>

                </konu>

            </konular>

        </ders>

        <ders derskodu=d2>

            <dersadi>Kimya</dersadi>

            <konular>

                <konu konukodu=k4>

                    <konuadi>Asal Gazlar</konuadi>

                </konu>

                <konu konukodu=k5>

                    <konuadi>Fazlar</konuadi>

                </konu>

                <konu konukodu=k6>

                    <konuadi>Titrasyon</konuadi>

                </konu>

            </konular>

        </ders>

    </sinif>

</siniflar>

Burada XSLT dosyamıza bir bağlantı dikkatinizi çekmiştir. Sarı ile çizili satırda belirtildiği dosya isminde bir XSLT dosyası oluşturalım.
TestXsltFile.xslt isimli XSLT dosyası ekliyoruz.
İçerisinde de şu kodu yazalım;

<?xml version=1.0 encoding=utf-8?>

<xsl:stylesheet version=1.0 xmlns:xsl=http://www.w3.org/1999/XSL/Transform

    xmlns:msxsl=urn:schemas-microsoft-com:xslt exclude-result-prefixes=msxsl>

    <xsl:output method=html indent=yes/>

    <xsl:template match=/>

        <html>

            <head>

                <title>Sample -1- Xml And Xslt</title>

            </head>

            <body>

                <table border=1>

                    <xsl:for-each select=siniflar/sinif>

                        <tr>

                            <td>

                                <xsl:value-of select=@sinifadi/>

                            </td>

                            <td></td>

                            <td></td>

                            <td></td>

                            <td></td>

                        </tr>

                        <xsl:for-each select=ders>

                            <tr>

                                <td></td>

                                <td>

                                    <xsl:value-of select=@derskodu/>

                                </td>

                                <td>

                                    <xsl:value-of select=dersadi/>

                                </td>

                                <td></td>

                                <td></td>

                            </tr>

                            <xsl:for-each select=konular/konu>

                                <tr>

                                    <td></td>

                                    <td></td>

                                    <td></td>

                                    <td>

                                        <xsl:value-of select=@konukodu/>

                                    </td>

                                    <td>

                                        <xsl:value-of select=konuadi/>

                                    </td>

                                </tr>

                            </xsl:for-each>

                        </xsl:for-each>

                    </xsl:for-each>

                </table>

            </body>

        </html>

    </xsl:template>

</xsl:stylesheet>

XSLT kodlarına dikkat edilirse;
İlk olarak bir HTML sayfa template ‘i oluşturuluyor. “match” özelliğine “/” veriliyor. Böylece arasındaki kod “siniflar” elementi için çalışıyor. (Yani Root Tag için) Sonrasında XML dosyamızın hiyerarşik yapısına göre “xsl:for-each” ifadesi ile elementlerin hepsi için dönülerek HTML tablomuz oluşturuluyor.
ASP.NET projemizin “Default.aspx” sayfasında, XML dosyamıza yönlendirme yapacağız ve böylece XML dosyamız, kendisine bağladığımız XSLT’yi kullanarak HTML tabloyu oluşturacaktır. “Default.aspx” sayfamızın “Page_Load” olayına şu satırı yazmamız gerekiyor.
Response.Redirect(@”TestXmlFile.xml”);
Ekranımıza şöyle bir HTML tablo gelecektir.

Reklamlar

Yazar: K. Murat BAŞEREN, MBA, MCP

I am a senior software developer, MCP, consultant, blogger, former chemist and software trainer. My interests range from software developer to technology. I am also interested in web development, education, and coffee.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s