用XML和XSLT來生成靜態的HTML頁面

iDotNetSpace發表於2009-05-15
轉載自:http://www.cnblogs.com/wengjinbao/archive/2006/08/08/471608.aspx
用XML和XSLT生成HTM頁面是我一直想做的事情,
畢竟,與其讓aspx頁面每訪問一次就去訪問資料庫,開啟資料連線,關閉資料連線,
還不如將資料存成htm靜態頁面

在網路上一直找尋這方面的資料,也不是很多,也去MSDN去看類庫,一個方法一個方法的看,終於管中窺豹
琢磨出這麼一點東西來
需要三個檔案:: 一個XML,一個XSL,還有一個aspx程式
Listing8.8.2.xml




  步青雲
  frey




  frey
  glenn




Listing8.8.1.xsl

http://www.w3.org/1999/XSL/Transform" version="1.0">






最後是aspx程式頁面Listing8.8.5.aspx





  public sub Page_Load(sender as Object, e as EventArgs)  
    Dim xmlPath as string = Server.MapPath("Listing8.8.2.xml")
    Dim xslPath as string = Server.MapPath("Listing8.8.1.xsl")
    Dim htmPath as string = Server.MapPath("Listing8.8.1.htm")

    Dim fs as FileStream = new FileStream(xmlPath,FileMode.Open, FileAccess.Read)
    Dim reader as StreamReader = new StreamReader(fs,Encoding.UTF8)
    Dim xmlReader as XmlTextReader = new XmlTextReader(reader)
    Dim fstr as FileStream = new FileStream(htmPath, FileMode.Create)

    Dim doc as XPathDocument = new XPathDocument(xmlReader)
    Dim xslDoc as XslTransform. = new XslTransform()
    xslDoc.Load(xslPath)

    '轉換資料
    xslDoc.Transform(doc,Nothing, fstr, nothing)
    xslDoc.Transform(doc,Nothing,Response.Output) ''輸出到頁面

    '關閉開啟的物件
    fs.Close()
    reader.Close()
    xmlReader.Close()
    fstr.Close()
  end sub
C#程式碼:
用XML和XSLT來生成靜態的HTML頁面Code
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--&gtstring xmlPath = Server.MapPath("listing.xml");
        
string xslPath = Server.MapPath("listing.xsl");
        
string htmlPath = Server.MapPath("listing.htm");

        FileStream fs 
= new FileStream(xmlPath, FileMode.Open, FileAccess.Read);
        StreamReader reader 
= new StreamReader(fs, Encoding.UTF8);
        XmlTextReader xmlReader 
= new XmlTextReader(reader);
        FileStream fstr 
= new FileStream(htmlPath, FileMode.Create);

        XPathDocument xpathDoc 
= new XPathDocument(xmlReader);
        XslCompiledTransform transform 
= new XslCompiledTransform();
        transform.Load(xslPath);

        transform.Transform(xpathDoc, 
null, fstr);
        
//transform.Transform(xpathDoc, null, Response.Output);

        fs.Close();
        reader.Close();
        xmlReader.Close(); 
        fstr.Close();


生成的htm檔案如下::
Listing8.8.1.htm


  我的呢稱:
 
1.
步青雲
2.
frey

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-598252/,如需轉載,請註明出處,否則將追究法律責任。

相關文章