XML ve XSLT Dosyalarını İşleyerek Ekrana HTML Çıktısı Veren ASPX Sayfası

Çarşamba, Nisan 15th, 2009 @ 20:15

evet mutlaka vardır bu konularla ilgilenen, hoş ben daha benden başkasını görüp duymadım ama neyse :)

Elinizde source olarak XML var, XSLT kullanarak bu dosyayı işlemek istiyorsunuz. Bazı yardımcı programlarla testlerini, çıktılarını, görünümü görüp hoşunuza gidiyor. Fakat internete koymak bunu biraz daha kastırıcı :)

Şöyleki aşağıdaki gibi bir default.aspx dosyanızın olması gerekli. Ne anlattığımı anlamayanlar, birer adet XML, XSLT ve ASPX dosyası ile db’ siz ek sayfasız muazzam portaller hazırlayabileceklerini düşünsünler. Şimdilik ilk aşama olarak ASPX dosyamızın kaynak kodlarını veriyorum. Fazla zor bir yapısı yok, o yüzden fazla açıklama gereği görmedim, isteyen olursa seve seve anlatabilirim.

Not düşeyim bir de : Buradaki XML ve XSLT dosyaları temel olarak Biztalk Server ın temelidir, yani microsoft bu teknolojiler üzerine BTS’ i geliştirmiştir.

Default.ASPX

using System.Xml;
using System.Xml.Xsl;
using System.Xml.XPath;
using System.IO;
using System.Reflection;
using System.Collections;
using System.Text.RegularExpressions;
using System.Web;
using System.Text;
using System;

public partial class _Default : System.Web.UI.Page
{

    protected void Page_Load(object sender, EventArgs e)
    {
        DoPage();
    }

    protected void DoPage()
    {
        // XML Dokümanını yükle
        XmlDocument defaultXml = new XmlDocument();
        defaultXml.Load(HttpContext.Current.Server.MapPath("~/Data/Source.XML"));

        XslCompiledTransform myXsl = new XslCompiledTransform(true);

        XsltSettings xSet = new XsltSettings(true, true);

        xSet = XsltSettings.TrustedXslt;
        xSet.EnableDocumentFunction = true;
        xSet.EnableScript = true;

        XmlUrlResolver xr = new XmlUrlResolver();

        System.Security.PermissionSet ps = new System.Security.PermissionSet(System.Security.Permissions.PermissionState.Unrestricted);
        XmlSecureResolver sr = new XmlSecureResolver(new XmlUrlResolver(), ps);

        myXsl.Load(HttpContext.Current.Server.MapPath("~/Data/Proses.XSLT"), xSet, sr);

        XsltArgumentList myXslArguments = new XsltArgumentList();

        string n="";

        for (int i = 0; Request.QueryString.Count < i-1; ++i)
        {
            n = Request.QueryString.Keys[i].ToString();
            if (!(n.Equals("")))
                myXslArguments.AddParam(n, "", Request.QueryString.GetValues(i).ToString());
            n = "";
        }

        myXslArguments.AddParam("currentUser", "", User.Identity.Name);
        myXslArguments.AddParam("Browser", "", Request.Browser.Browser);

        System.IO.MemoryStream mIO = new MemoryStream();
        byte[] result;
        string myt;

        mIO.SetLength(0);
        myXsl.Transform(defaultXml, myXslArguments, mIO);

        result = mIO.ToArray();
        myt = Encoding.UTF8.GetString(result, 3, result.Length - 3);

        Response.Buffer = true;
        Response.ClearContent();
        Response.ClearHeaders();
        Response.Cache.SetCacheability(HttpCacheability.NoCache);
        Response.ContentType = "text/html";
        Context.Response.Write(myt);

        mIO.Close();

        Response.End();
    }

}

İlişkili Yazılar :

  1. Sharepoint 2010 Error : The underlying connection was closed: “Could not establish trust relationship for the SSL/TLS secure channel.”
  2. XSLT Choose
  3. Dataset ya da Datatable’dan Excele Bilgi Aktarma || Export Excel From Dataset, Datatable
  4. HTML de TIF (TIFF) gösterimi
  5. GMail HTML Desteği
  6. Biztalk error : New transaction cannot enlist in the specified transaction coordinator.
  7. DataTable da Sütunun DataType’ını Belirleme
  8. C# da Çalışan Uygulamanın Klasörünü Bulma
  9. Şifreyi Komşuya Veren Yandı!!!
  10. Biztalk Server 2010 – Beta

Tags: , , , , , ,
Posted in Yazılım | No Comments »

Önceki Yazı << Sonraki Yazı >>

Leave a Reply



Yeni yorumları e-posta aracılığıyla bana bildir. Ayrıca yorum yapmadan da abone olabilirsiniz.