程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> Step1數據系統技術(2.XML+XSLT的頁面生成機制)

Step1數據系統技術(2.XML+XSLT的頁面生成機制)

編輯:關於ASP.NET

在本系統之中,網站的主體頁面並不是通過普通的aspx返回方式返回的,而是采用一種XML+XSLT的形式,來自生成,這是我個人比較喜歡的方式,這種方式在這個系統之中有著更好的優勢,我現在將優勢列舉幾條:

1.完整的實現數據和表現形式的分離,數據完全在XML文件之中實現,而頁面的表現的形式完全用XSLT實現,這樣使程序的結構清晰簡單,易於維護;

2.可以隨意的選擇將結果輸出到文件或者Response;

3.XSLT可以自動的壓縮HTML代碼,生成緊湊,不易閱讀而不影響浏覽器解析的代碼,你在XSLT文件之中的注釋也不會顯示到客戶端,除非你特意指明;

4.XSLT允許相互調用,這樣就可以實現比較容易更新和維護的架構;

5.XSLT要實現網站完全換膚非常容易,容易到你可能覺得他們設計XSLT就是用來做換膚,可以將網站變成一個風格完全不同的網站,而不是普通的CSS換膚就是換一個顏色主體而已。

缺點也要列舉一條(相當重要):XSLT使用的人可能不是太多,學習起來也有一定的難度,這個是最大的障礙。

使用xml+XSLT來架構網站是很清晰的,首先創建一個XmlDocument對象,然後再通過規范的格式向XML之中填充數據,再打開XSLT文件,通過該XSLT文件轉化XML,並將結果直接輸出到Response即可,以下是XSLT輸出的代碼:

1protected void saveFile(XmlDocument xml,string xsltFile)
2{
3  XslTransform xslt=new XslTransform();
4  xslt.Load(Server.MapPath(XsltFilePath)+xsltFile);
5  xslt.Transform(xml,null,Response.OutputStream,null);
6  writer.Close();
7}

關於如何將數據填充到XML數據之中,不是本文要講述的內容,不過,我可以提供一種思路,那就是使用SQL語句之中的For Xml語句,方法是在你的查詢語句之後添加 for xml auto語句段,這樣SQL Server返回的數據將是XML節點形式,然後你使用如下函數將返回結果導入到你的XML節點之中:

1  protected void GetXmlBySql(XmlNode xmlNode,string sql,SqlConnection conn)
2  {
3   SqlCommand sqlCommand=new SqlCommand(sql,conn);
4   XmlTextReader xmlTextReader=(XmlTextReader)sqlCommand.ExecuteXmlReader();
5   xmlTextReader.Normalization=true;
6   try
7   {
8    while(!xmlTextReader.EOF)
9    {
10     XmlNode tempXmlNode=xmlNode.OwnerDocument.ReadNode(xmlTextReader);
11     if(tempXmlNode!=null)
12      xmlNode.AppendChild(tempXmlNode);
13    }
14   }
15   catch(Exception e){}
16   xmlTextReader.Close();
17   sqlCommand.Dispose();
18 }

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved