国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

ASP.NET 2.0中XSLT的使用

2019-11-18 17:08:26
字體:
來源:轉載
供稿:網友
  在asp.net 2.0中,對xml的應用大為增強,而在XSLT處理方面,也提供了新的功能。本文將簡單對asp.net 2.0中XSLT的使用作簡單的說明,當然本文假定讀者有一定的XSLT的基礎知識。

  在asp.net 2.0中,XSLT方面有如下的轉變和新功能:

  ·XslCompiledTransform - 實際上是.NET 1.0的 XslTransform ,但提供了更好的性能支持,也支持之前.net 1.0下的應用的順利遷移.

  ·XsltArgumentList - 允許向XSLT中傳遞參數或者對象

  XsltCompileException - 當通過loa()方法加載XSL文檔時發生錯誤時產生的異常。

  XsltException - 當在對XSL文檔進行解析時發生錯誤時產生的異常。

  先來看個簡單的例子,該例子從NORTHWIND數據庫中拿出數據,以XML格式展示,再以XSLT格式轉換,其中XSLT代碼如下:

<?xml version="1.0" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" />
<xsl:template match="/">
<HTML>
<HEAD>
?。糡ITLE>Simple XSLT Transformation</TITLE>
</HEAD>
<BODY>
 <H2>Simple XSLT Transformation</H2>
?。紅able border="1" cellSpacing="1" cellPadding="1">
 ?。糲enter>
 ?。紉sl:for-each select="http://Categories">
  <!-- Each record on a seperate row -->
 ?。紉sl:element name="tr">
   <xsl:element name="td">
   ?。紉sl:value-of select="   </xsl:element>
 ?。紉sl:element name="td">
?。紉sl:value-of select="Name" />
 </xsl:element>
 <xsl:element name="td">
?。紉sl:attribute name="align">center</xsl:attribute>
?。紉sl:value-of select="ModifiedDate" />
 </xsl:element>
 </xsl:element>
?。?xsl:for-each>
?。?center>
?。?table>
</BODY>
</HTML>
</xsl:template>
</xsl:stylesheet>

  然后其展示的ASPX代碼為:

<%@ Page Language="C#" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<%@ Import Namespace="System.Xml" %>
<%@ Import Namespace="System.Xml.Xsl" %>
<%@ Import Namespace="System.Xml.XPath" %>
<%@ Import Namespace="System.Web.Configuration" %>
<script runat="server">
void Page_Load(object sender, System.EventArgs e)
{
 string connString = WebConfigurationManager.ConnectionStrings
["adventureWorks"].ConnectionString;
 using (SqlConnection connection = new SqlConnection(connString))
 {
  connection.Open();
  SqlCommand command = new SqlCommand
("Select * from Production.ProductSubcategory as Categories " +
" for xml auto,elements", connection);
  XmlReader reader = command.ExecuteXmlReader();
  XPathDocument xpathDoc = new XPathDocument(reader);
  string xslPath = Server.MapPath("Category.xsl");
  XslCompiledTransform transform = new XslCompiledTransform();
  transform.Load(xslPath);
  transform.Transform(xpathDoc, null, Response.Output);
 }
}
</script>

  其中注意我們先用xmlreader讀取數據庫提出來的數據(以xml auto的方式),然后載入xsl文件,再用xslcompiledtransform類進行轉換,其中用xpathdocument是為了性能的提升。注意這里用xslcompiledtransform取代了.net 1.1中的xslttransform,運行結果如下圖


  還可以向XSLT中傳入參數或對象,先看如何向其傳入參數,比如要改變上例的背景顏色,則可以這樣寫XSLT

<?xml version="1.0" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" />
<xsl:param name="BackGroundColor" select="Blue" />
<xsl:template match="/">
<HTML>
<HEAD>
<TITLE>Passing Parameters to an XSLT Style Sheet</TITLE>
</HEAD>
<BODY>
<H2> Passing Parameters to an XSLT Style Sheet</H2>
<table border="1" cellSpacing="1" cellPadding="1">
<center>
<xsl:for-each select="http://Categories">
<!-- Each record on a seperate row -->
<xsl:element name="tr">
<xsl:attribute name="bgcolor">
<xsl:value-of select="$BackGroundColor" />
</xsl:attribute>
<xsl:element name="td">
<xsl:value-of select="ProductSubcategoryID" />
</xsl:element>
<xsl:element name="td">
<xsl:value-of select="Name" />
</xsl:element>
<xsl:element name="td">
<xsl:attribute name="align">center</xsl:attribute>
<xsl:value-of select="ModifiedDate" />
</xsl:element>
</xsl:element>
</xsl:for-each>
</center>
</table>
</BODY>
</HTML>
</xsl:template>
</xsl:stylesheet>

  要注意的是其中的是:

<xsl:attribute name="bgcolor">
<xsl:value-of select="$BackGroundColor" />

  以這樣的形式指定了backgroundcolor是一個參數,而在XSLT的一開始,以<xsl:param name="BackGroundColor" select="Blue" />的方式,為backgroundcolor設定了一個值為藍色,這樣則為使<tr>的背景顏色bgcolor=blue,實現將輸出數據的每一行變為藍色的效果。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 锡林郭勒盟| 赤峰市| 惠安县| 扎兰屯市| 革吉县| 姚安县| 当涂县| 同仁县| 辉南县| 高邮市| 龙胜| 凭祥市| 蒙自县| 海丰县| 商丘市| 蒲城县| 汕尾市| 苗栗市| 全州县| 大石桥市| 万全县| 兰考县| 锡林浩特市| 胶州市| 卫辉市| 左贡县| 仪征市| 伊金霍洛旗| 克拉玛依市| 榕江县| 新竹县| 稷山县| 辽阳县| 合肥市| 新沂市| 沙坪坝区| 光山县| 新民市| 咸丰县| 定西市| 团风县|