首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

ASP.NET 2.0 XSLT 轉換新功能:XslCompiledTransform 與參數傳遞

     編輯:關於ASP.NET

ASP.NET 2.0 引入 System.Xml.Xsl.XslCompiledTransform 取代舊版 XslTransform,提供編譯快取、效能大幅提升,並支援 XsltArgumentList 傳遞參數與擴充物件。

關鍵類別

  • XslCompiledTransform:編譯 XSLT 為 IL,重複轉換效能極佳
  • XsltArgumentList:AddParam(name, namespace, value) 傳遞參數,AddExtensionObject 註冊自訂函式
  • XsltCompileException:載入/編譯階段錯誤
  • XsltException:轉換執行階段錯誤

完整範例:Northwind 類別轉 HTML 表格

// XSLT 檔案 (categories.xslt)
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="https://www.w3.org/1999/XSL/Transform">
  <xsl:output method="html"/>
  <xsl:param name="title" select="'預設標題'"/>
  <xsl:template match="/">
    <html><body><h2><xsl:value-of select="$title"/></h2>
    <table border="1"><xsl:for-each select="//Categories">
      <tr><td><xsl:value-of select="CategoryID"/></td>
          <td><xsl:value-of select="CategoryName"/></td></tr>
    </xsl:for-each></table></body></html>
  </xsl:template>
</xsl:stylesheet>

// C# 程式碼
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load(Server.MapPath("categories.xslt"));

XsltArgumentList args = new XsltArgumentList();
args.AddParam("title", "", "Northwind 產品類別");

using (XmlReader reader = XmlReader.Create(Server.MapPath("categories.xml")))
using (StringWriter sw = new StringWriter())
{
    xslt.Transform(reader, args, sw);
    Response.Write(sw.ToString());
}

編譯後的 XslCompiledTransform 物件可靜態快取重用,避免每次請求重新編譯 XSLT。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved