<%@ 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">
<xsl:value-of select="demo/url"/>
</xsl:attribute>
<xsl:value-of select="demo/link_text"/>
</a>
</td>
<td>
<a>
<xsl:attribute name="href">
<xsl:value-of select="source/url"/>
</xsl:attribute>
<xsl:value-of select="source/link_text"/>
</a>
</td>
<td><xsl:value-of select="description"/></td>
</tr>
</xsl:template>
</xsl:transform>
文章来源于领测软件测试网 https://www.ltesting.net/