Transforming an XML document using XSL/T and outputting the results to the browser is a fairly simple task in ASP.NET. The following user control demonstrates the ease with which this can be accomplished. This user control has a parameter for the XML source(XMLSource), and a parameter for the XSL source(xslSource). When placing this user control on a page, simply specify both values (using relative paths, since they are Server.MapPath'ed within the user control) and you're done! The transformed result will be output to Response.Output and sent to the user's browser. You can use this to create a two line ASPX file that simply uses this user control to render its output. By using Output and/or Fragment caching, you can ensure that the CPU load required to transform the XML is minimized.
<%@ Control Language="c#" %>
<%@ Import Namespace="System.XML" %>
<%@ Import Namespace="System.XML.Xsl" %>
<%@ Import Namespace="System.XML.XPath" %>
<script runat="server" language="c#">
public string XMLSource, xslSource;
void Page_Load(){
XMLDocument docXML = new XMLDocument();
docXML.Load(Server.MapPath(XMLSource));
XslTransform docXsl = new XslTransform();
docXsl.Load(Server.MapPath(xslSource));
docXsl.Transform(docXML,null,Response.Output);
// chapter.Text = docXML.TransformNode(docXsl);
}
</script>
An example of a page using this user control, Output Caching for 1 minute:
<%@Page%>
<%@ Register TagPrefix="authors" tagname="chapters" src=../../"/controls/chapters.ascx"%>
<%@ OutputCache Duration="60" VaryByParam="none" %>
<authors:chapters id="chapters" runat="server"
XMLSource="chapter.XML" xslSource="chapter.xsl" />
To test this out, you can use the following two files:
chapter.XML
<chapter>
<!-- Chapter Name -->
<name>Chapter Name</name>
<!-- Author -->
<author>
<name>Steven Smith</name>
<email>ssmith@ASPalliance.com</email>
<website>http://ASPalliance.com/stevesmith/</website>
</author>
<!-- Examples from Chapter -->
<examples>
<example>
<!-- The number from the book, e.g. 2.3 -->
<reference>2.1</reference>
<!-- Link to working example -->
<demo>
<url>hellovb.ASP</url>
<link_text>HelloVB.ASP</link_text>
</demo>
<!-- Link to source code -->
<source>
<url>hellovb.txt</url>
<link_text>HelloVB.ASP source</link_text>
</source>
<!-- Description of the example -->
<description>Hello World using Classic ASP.</description>
</example>
</examples>
</chapter>
chapter.xsl
<?XML version="1.0" ?>
<xsl:transform XMLns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="XML" />
<xsl:template match="/">
<p>
<xsl:apply-templates select="chapter" />
</p>
</xsl:template>
<xsl:template match="/chapter" >
<b><xsl:value-of select="name"/></b>
<br/>
by <xsl:apply-templates select="author" />
<br/><br/>
<xsl:apply-templates select="examples" />
</xsl:template>
<xsl:template match="author" >
<i><xsl:value-of select="name"/></i>
</xsl:template>
<xsl:template match="examples" >
<table bgcolor="#000033">
<tr bgcolor="#CCCCFF">
<th>Reference</th>
<th>Demo</th>
<th>Source</th>
<th>Description</th>
</tr>
<xsl:apply-templates select="example" />
</table>
</xsl:template>
<xsl:template match="example" >
<tr bgcolor="#DDDDDD">
<td><xsl:value-of select="reference"/></td>
<td>
<a>
<xsl:attribute name="href">
URL查看 http://www.qqread.com/aspdotnet/n222322.html
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
相关专题
- .NET移动与嵌入式技术 (5880篇文章)
- .NET开发手册 (5585篇文章)
- XML详解 (1531篇文章)
- ASP.NET教程 (8343篇文章)
- .NET基础介绍 (706篇文章)
- Web开发 (425篇文章)
- ASP.NET应用篇 (2591篇文章)
- asp.net 实现购物车详细代码 (14312次浏览)
- ASP.NET2.0轻松搞定统计图表 (651次浏览)
- 使用ASP.NET AJAX实现幻灯片效果 (604次浏览)
- ASP.NET如何存取 SQLServer数据库图片 (592次浏览)
- 如何制作Asp.Net界面模板 (582次浏览)
- ASP.NET中实现DataGrid数据排序 (580次浏览)
- 设计ASP.NET新闻管理系统 (424次浏览)
- ASP.NET 2.0加密Web.config 配置文件 (381次浏览)
- 网络编程ASP.NET的几个技巧 (374次浏览)
- ASP.NET的Request对象的属性介绍 (324次浏览)



