【转载】用XML和XSLT来生成静态的HTML页面
2009-05-15 14:01
573 查看
转载自:http://www.cnblogs.com/wengjinbao/archive/2006/08/08/471608.aspx
用XML和XSLT生成HTM页面是我一直想做的事情,
毕竟,与其让aspx页面每访问一次就去访问数据库,打开数据连接,关闭数据连接,
还不如将数据存成htm静态页面
在网络上一直找寻这方面的资料,也不是很多,也去MSDN去看类库,一个方法一个方法的看,终于管中窥豹
琢磨出这么一点东西来
需要三个文件:: 一个XML,一个XSL,还有一个aspx程序
Listing8.8.2.xml
<?xml version="1.0" encoding="UTF-8" ?>
<golfers>
<golfer skill="excellent" handicap="10" clubs="Taylor Made" id="1111">
<name>
<firstName>步青云</firstName>
<lastName>frey</lastName>
</name>
</golfer>
<golfer skill="moderate" handicap="12" clubs="Taylor Made" id="2222">
<name>
<firstName>frey</firstName>
<lastName>glenn</lastName>
</name>
</golfer>
</golfers>
Listing8.8.1.xsl
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" indent="yes"/>
<xsl:template match="/">
<html>
<body>
<xsl:apply-templates />
</body>
</html>
</xsl:template>
<xsl:template match="golfers">
<b>我的呢称:</b>
<xsl:apply-templates />
</xsl:template>
<xsl:template match="golfer">
<br />
<xsl:number format="1" />.
<xsl:value-of select="name/firstName" />
</xsl:template>
</xsl:stylesheet>
最后是aspx程序页面Listing8.8.5.aspx
<%@ Import Namespace="System.Xml" %>
<%@ Import Namespace="System.Xml.Xsl" %>
<%@ Import Namespace="System.Xml.XPath" %>
<%@ Import Namespace="System.IO" %>
<script language="VB" runat="server">
public sub Page_Load(sender as Object, e as EventArgs)
Dim xmlPath as string = Server.MapPath("Listing8.8.2.xml")
Dim xslPath as string = Server.MapPath("Listing8.8.1.xsl")
Dim htmPath as string = Server.MapPath("Listing8.8.1.htm")
Dim fs as FileStream = new FileStream(xmlPath,FileMode.Open, FileAccess.Read)
Dim reader as StreamReader = new StreamReader(fs,Encoding.UTF8)
Dim xmlReader as XmlTextReader = new XmlTextReader(reader)
Dim fstr as FileStream = new FileStream(htmPath, FileMode.Create)
Dim doc as XPathDocument = new XPathDocument(xmlReader)
Dim xslDoc as XslTransform = new XslTransform()
xslDoc.Load(xslPath)
'转换数据
xslDoc.Transform(doc,Nothing, fstr, nothing)
xslDoc.Transform(doc,Nothing,Response.Output) ''输出到页面
'关闭打开的对象
fs.Close()
reader.Close()
xmlReader.Close()
fstr.Close()
end sub
</script>
C#代码:
Code
string xmlPath = Server.MapPath("listing.xml");
string xslPath = Server.MapPath("listing.xsl");
string htmlPath = Server.MapPath("listing.htm");
FileStream fs = new FileStream(xmlPath, FileMode.Open, FileAccess.Read);
StreamReader reader = new StreamReader(fs, Encoding.UTF8);
XmlTextReader xmlReader = new XmlTextReader(reader);
FileStream fstr = new FileStream(htmlPath, FileMode.Create);
XPathDocument xpathDoc = new XPathDocument(xmlReader);
XslCompiledTransform transform = new XslCompiledTransform();
transform.Load(xslPath);
transform.Transform(xpathDoc, null, fstr);
//transform.Transform(xpathDoc, null, Response.Output);
fs.Close();
reader.Close();
xmlReader.Close();
fstr.Close();
生成的htm文件如下::
Listing8.8.1.htm
<html>
<body>
<b>我的呢称:</b>
<br>1.
步青云<br>2.
frey</body>
</html>
用XML和XSLT生成HTM页面是我一直想做的事情,
毕竟,与其让aspx页面每访问一次就去访问数据库,打开数据连接,关闭数据连接,
还不如将数据存成htm静态页面
在网络上一直找寻这方面的资料,也不是很多,也去MSDN去看类库,一个方法一个方法的看,终于管中窥豹
琢磨出这么一点东西来
需要三个文件:: 一个XML,一个XSL,还有一个aspx程序
Listing8.8.2.xml
<?xml version="1.0" encoding="UTF-8" ?>
<golfers>
<golfer skill="excellent" handicap="10" clubs="Taylor Made" id="1111">
<name>
<firstName>步青云</firstName>
<lastName>frey</lastName>
</name>
</golfer>
<golfer skill="moderate" handicap="12" clubs="Taylor Made" id="2222">
<name>
<firstName>frey</firstName>
<lastName>glenn</lastName>
</name>
</golfer>
</golfers>
Listing8.8.1.xsl
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" indent="yes"/>
<xsl:template match="/">
<html>
<body>
<xsl:apply-templates />
</body>
</html>
</xsl:template>
<xsl:template match="golfers">
<b>我的呢称:</b>
<xsl:apply-templates />
</xsl:template>
<xsl:template match="golfer">
<br />
<xsl:number format="1" />.
<xsl:value-of select="name/firstName" />
</xsl:template>
</xsl:stylesheet>
最后是aspx程序页面Listing8.8.5.aspx
<%@ Import Namespace="System.Xml" %>
<%@ Import Namespace="System.Xml.Xsl" %>
<%@ Import Namespace="System.Xml.XPath" %>
<%@ Import Namespace="System.IO" %>
<script language="VB" runat="server">
public sub Page_Load(sender as Object, e as EventArgs)
Dim xmlPath as string = Server.MapPath("Listing8.8.2.xml")
Dim xslPath as string = Server.MapPath("Listing8.8.1.xsl")
Dim htmPath as string = Server.MapPath("Listing8.8.1.htm")
Dim fs as FileStream = new FileStream(xmlPath,FileMode.Open, FileAccess.Read)
Dim reader as StreamReader = new StreamReader(fs,Encoding.UTF8)
Dim xmlReader as XmlTextReader = new XmlTextReader(reader)
Dim fstr as FileStream = new FileStream(htmPath, FileMode.Create)
Dim doc as XPathDocument = new XPathDocument(xmlReader)
Dim xslDoc as XslTransform = new XslTransform()
xslDoc.Load(xslPath)
'转换数据
xslDoc.Transform(doc,Nothing, fstr, nothing)
xslDoc.Transform(doc,Nothing,Response.Output) ''输出到页面
'关闭打开的对象
fs.Close()
reader.Close()
xmlReader.Close()
fstr.Close()
end sub
</script>
C#代码:
Code
string xmlPath = Server.MapPath("listing.xml");
string xslPath = Server.MapPath("listing.xsl");
string htmlPath = Server.MapPath("listing.htm");
FileStream fs = new FileStream(xmlPath, FileMode.Open, FileAccess.Read);
StreamReader reader = new StreamReader(fs, Encoding.UTF8);
XmlTextReader xmlReader = new XmlTextReader(reader);
FileStream fstr = new FileStream(htmlPath, FileMode.Create);
XPathDocument xpathDoc = new XPathDocument(xmlReader);
XslCompiledTransform transform = new XslCompiledTransform();
transform.Load(xslPath);
transform.Transform(xpathDoc, null, fstr);
//transform.Transform(xpathDoc, null, Response.Output);
fs.Close();
reader.Close();
xmlReader.Close();
fstr.Close();
生成的htm文件如下::
Listing8.8.1.htm
<html>
<body>
<b>我的呢称:</b>
<br>1.
步青云<br>2.
frey</body>
</html>
相关文章推荐
- 用XML和XSLT来生成静态的HTML页面
- [导入]xml应用(1):使用xmldom在服务器端生成静态html页面
- 【转载】C#动态页面aspx生成静态html解决方案
- xml应用(1):使用xmldom在服务器端生成静态html页面
- asp.net中将DataTable根据xslt生成html静态页面,支持分页
- ASP.NET生成静态HTML页面
- JSP生成静态HTML页面的几种方法
- 将aspx的动态页面生成静态的HTML页面
- 静态缓存案例生成一个html页面
- 使用XslCompiledTransform结合xslt转换xml为html静态页面
- asp.net 生成静态html页面
- PHP 动态生成静态HTML页面示例代码
- ASP.NET生成静态HTML页面并分别按年月目录存放
- PHP生成HTML静态页面实例代码
- PHP生成HTML静态页面实例代码
- 网站生成HTML静态页面对硬盘的影响分析
- asp 生成Html静态页面
- ASP.NET生成静态HTML页面并分别按年月目录存放
- 遍历指定文件夹下所有的xml文件并动态生成HTML页面!
- xml和xsl生成html页面