mehmetduran.com - Paylaşmak Güzeldir...
Asp.net ve Veritabanı ile XML Oluşturma ve Xsl ile Şekillendirme
XML Oluşturma ve Xsl İle Şekillendirme - Ekran GörüntüsüAsp.net ve veritabanı ile xml oluşturup, oluşturduğumuz xml'i xsl dosyası ile nasıl şekillendirebileceğimizi göstereceğim. Yapacağım örneğin ekran görüntüsü tamamen yandaki gibi olacak. Örnekte veritabanı olarak access kullandım ve xml dosyasını kodlarla oluşturdum.

Bütün bunlar için projemizde bir tane aspx uzantılı bir sayfa, oluşturacağımız xml'e şekil vereceğimiz bir xsl dosyası ile kullanacağımız access veritabanı var.

Kodlarımıza ve veritabanımıza bakacak olursak:

XML Oluşturma ve Xsl İle Şekillendirme - Veritabanı

Kullancağımız veritabanı bu şekilde olacak. Xml oluşturmak için ise kodlarımız şöyle olacak:

        OleDbConnection baglanti = new OleDbConnection("provider=microsoft.jet.oledb.4.0; data source=" + Server.MapPath("~/App_Data/xml.mdb"));
        OleDbCommand komut = new OleDbCommand("select menu,yemek,icecek from xml", baglanti);
 
        Response.Clear();
        Response.ContentType = "text/xml";
        XmlTextWriter xr = new XmlTextWriter(Response.OutputStream, Encoding.UTF8);
        xr.WriteStartDocument();
        // xsl dosyamızı burada(aşağıda) bildiriyoruz.
        String xsl = "type='text/xsl' href='xml.xsl'";
        xr.WriteProcessingInstruction("xml-stylesheet", xsl);
        // xml dosyamızı oluşturmaya başlıyoruz
        xr.WriteStartElement("yemekler");
        baglanti.Open();
        OleDbDataReader oku = komut.ExecuteReader();
        while (oku.Read())
        {
            xr.WriteStartElement("menu");
            xr.WriteAttributeString("menu", oku.GetString(0));
            xr.WriteElementString("yemek", oku.GetString(1));
            xr.WriteElementString("icecek", oku.GetString(2));
            xr.WriteEndElement();
        }
        baglanti.Close();
        xr.WriteEndDocument();
        xr.Flush();
        xr.Close();
        Response.End();
    }

Xml'i oluşturduktan sonra projemizde xml'i şekillendirmek için eklediğimiz xsl dosyamızın kodları da şu şekilde olacak:

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="html" indent="yes"/>
<xsl:template match="/">
    <html>
      <head>
        <style type="text/css">
          body{ font-family:trebuchet ms; font-size:11pt;}
          .menu{ padding-left:10px; background-color:#f0ffff; width:200px;}
          .yemek{ width:200px; padding-left:30px;}
          .icecek{ width:200px; padding-left:30px;}
          .yazi{ color:#900;}
        </style>
      </head>
    <body>
      <div>
        <xsl:for-each select="yemekler/menu">
          <div class="menu">
            <xsl:value-of select="@menu"/>
          </div>
          <div class="yemek">
            Yemek : <font class="yazi"><xsl:value-of select="yemek"/></font>
          </div>
          <div class="icecek">
            İçecek : <font class="yazi"><xsl:value-of select="icecek"/></font>
          </div>
        </xsl:for-each>
      </div>
    </body>
    </html>
</xsl:template>
</xsl:stylesheet> 

Bütün bunları yaptıktan sonra ekran görüntümüz yukarıda bulunan resimdeki gibi olacak. Tabi şekillendirmeyi ve renklendirmeyi istediğiniz gibi yapabilirsiniz.
Örnek projeyi buradan indirebilirsiniz.
İyi Çalışmalar!
Mehmet Duran 27 Ağustos Çarşamba 2008 9 20562 5,0
Bookmark and Share
Bu Yazıyı Değerlendirin.
Konuyla İlgili Olabilecek Diğer Yazılar ActionScript for Designers Javascript ile Mouse Pozisyonunu Bulma Bloğumda Kullandığım SiteMap Sınıfı Asp.net, Jquery ve Ajax ile Yapmış Olduğum Galeri Hazır Linq to Sql - İlk Örnek Uygulamam
Yorumlar
Yorum Yaz
RSS Yorum Takibi
Mehmet 17 Ocak Pazar 2010 00:13 #1
hocam xml oluşturuyoruz ancak sunucumuzdaki mevcut xml nin üzerine yazmak istersek ne yapmalıyız.yani ftp ye yer alan xml dosyasını veritabanından okutup yazmak istiyoruz.sunucu üzerinden veritabanından okuyup yeni bir xml oluşturuyoruz.ancak sunucudaki xml yi değiştirmek istersek ne yapmalıyız acaba?
Mehmet Duran 17 Ocak Pazar 2010 13:11 #2
Değiştirme işleminde de farklılıklar olabilir. Eğer tüm verileri değiştireceksen direk olarak tüm verilerin üstüne yeni verileri yazabilirsin. Eğer tek bir satır veya değeri değştireceksen buna göre xml dosyayı parse edip, gerekli alanı bulup değştirmen gerekiyor. Bu işlemlerdeki mantıkta text dosyalarını okuma, yazma işlemleri ile aynı.
Mehmet 17 Ocak Pazar 2010 21:27 #3
Sorunu çözdüm.teşekkürler.
veli 13 Mart Pazar 2011 22:44 #4
mehmet hocam aynı sorun bende de var. xml i baştan oluşturmak yerine ftp deki xml in üzerine yazmak istiyorum. yardımcı olabilirmisiniz? teşekkürler
Mehmet Duran 08 Nisan Cuma 2011 22:46 #5
@veli, bunun için text dosyaları üzerinde işlem yapan sınıfları incelemeni tavsiye ederim. O sınıfların altında dosyaya direk olarak veri ekleyen fonksiyonlar mevcut.
misafir 18 Nisan Pazartesi 2011 15:01 #6
text dosyalar derken, daha fazla yardimci olmasi acisindan link vermeniz mumkun mu? yada demek istediginiz xml document mi?
Mehmet Duran 18 Nisan Pazartesi 2011 15:16 #7
@misafir, bahsetmek istediğim konuya buradaki yazım örnek olabilir. Text dosyaları üzerinde yaptığımız okuma yazma işlemlerini xml dosyalar üzerinde de yapabiliriz.
Gökhan 21 Nisan Perşembe 2011 09:07 #8
Hocam öncelikle örnek için teşekkürler, kullanacağım projede işime yarayacak. Yalnız benim elimde bir de XSD dosyası var ve oluşturacağım XML dosyası bu XSD deki tablo ve kolon tanımlarına uygun olması lazım
Mehmet Duran 22 Nisan Cuma 2011 23:08 #9
@Gökhan, XSD dosyalarla uğraşmadım ama mantık xsl ile benzer olsa gerek. Oradaki kolonlara göre xml dosyanı ya da xml dosyana göre XSD dosyasını oluşturman gerekiyor.
İsim :
Site :
Yorum :

Buradan bu yazıya ait yorumları RSS olarak takip edebilirsiniz.

Bu servis ile yazılara eklenen yorumları RSS ile takip ederek konu ile ilgili başkaları tarafından yapılan yorumları veya konuyla ilgili sorduğunuz sorulara verilen cevapları görebilirsiniz.
Başarısızlıklarınız ile soylu bir şekilde yüzleşin, başarıdan farkı kalmayacaktır.
Bölümler
Yazılar
Arşiv
Arama
Linkler
Site İçi Arama
Son Zamanlarda Ne Yapıyorum ?
İstatistikler - Araçlar - Reklam
İstatistikler
Sayaç
Mehmet Duran | mehmetduran.com | Copyright © 2009