当前位置导航:炫浪网>>网络学院>>网页制作>>ASP.NET教程

ASP.NET 2.0中XSLT的使用

欢迎进入.NET社区论坛,与200万技术人员互动交流 >>进入

    在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>
 <TITLE>Simple XSLT Transformation</TITLE>
</HEAD>
<BODY>
 <H2>Simple XSLT Transformation</H2>
 <table border="1" cellSpacing="1" cellPadding="1">
  <center>
  <xsl:for-each select="//Categories">
  <!-- Each record on a seperate row -->
  <xsl:element name="tr">
   <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>

    然后其展示的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>


相关内容
赞助商链接