使用xmldom在服务器端生成静态html页面

dom|xml|服务器|静态|页面

服务器端的生成的页面数据,为了提高访问速度,往往需要生成静态的htm页面。
通常,可以使用fso生成静态的htm页。
但如果是fso被禁止或没有使用fso的权限,就需要其他的方法来解决.
利用xmldom,使用其save()方法就是一个很好的解决之道.
而且,如果数据是xml格式,使用save()比使用fso速度要快,代码的复用率也高。

但需要注意的是:
调用xmldom.save()方法时,默认的编码方式是"uft-8".
如果指定文档输出类型为"html",由于其不可指定编码类型,当数据中含有中文字符,就会发现保存的htm数据中,所有中文字符都变成了乱码.

解决方法:
机制,通常浏览器对于html类型的页面,对于htm标记以外的标记并不进行解释.
a.指定输出文档类型为"xml"
b.指定编码(encoding="gb2312")
c.指定保留缩进格式(以方便阅读)

examples:

/***create.asp***/
<%
dimcXMLFile,cXSLFile
dimoXML,XSL
dimoOutput
dimcHtmLFile,cOutputFile

cHtmLFile="book.htm"
'cHtmLFile="book_"&replace(replace(replace(now,":",""),"-",""),"","")&".htm"

cXMLFile=Server.MapPath("book.xml")
cXSLFile=Server.MapPath("book.xsl")
cOutputFile=Server.MapPath(cHtmLFile)

SetoXML=Server.CreateObject("Microsoft.XMLDOM")
oXML.async=false
oXML.load(cXMLFile)

SetoXSL=Server.CreateObject("Microsoft.XMLDOM")
oXSL.async=false
oXSL.load(cXSLFile)

SetoOutput=Server.CreateObject("Microsoft.XMLDOM")
CalloXML.transformNodeToObject(oXSL,oOutput)

oOutput.save(cOutputFile)

SetoXML=Nothing
SetoXSL=Nothing
SetoOutput=Nothing

Response.redirect(cHtmLFile)
%>

/***book.xml***/
<?xmlversion="1.0"encoding="gb2312"?>
<?xml-stylesheettype="text/xsl"href="book.xsl"?>
<moonpiazza>
<book>
<书名>基于XML的ASP.NET开发</书名>
<定价>42</定价>
<作者>DanWahlin/王宝良</作者>
</book>
<book>
<书名>XML应用的UML建模技术</书名>
<定价>32</定价>
<作者>DavidCarlson/周靖侯奕萌沈金河等</作者>
</book>
<book>
<书名>极限编程研究</书名>
<定价>70</定价>
<作者>GiancarrioSucci/MicheleMarchesi/张辉(译)</作者>
</book>
<book>
<书名>DesignPatterns</书名>
<定价>38</定价>
<作者>ErichGamma/RichardHelm/RalphJohnson/JohnVlissides</作者>
</book>
</moonpiazza>

/***book.xsl***/
<?xmlversion="1.0"encoding="gb2312"?>
<xsl:stylesheetxmlns:xsl=""version="1.0">
<!--下面一句必须-->
<xsl:outputmethod="xml"encoding="gb2312"indent="yes"/>

<xsl:templatematch="/">
<html>
<metahttp-equiv="Content-Type"content="text/html;charset=gb2312"/>
<!--bymoonpiazza2003.6.13-->
<body>
<tableborder="1">
<tr>
<xsl:for-eachselect="moonpiazza/book[position()=1]/*">
<td><xsl:value-ofselect="name()"/></td>
</xsl:for-each>
</tr>
<xsl:for-eachselect="moonpiazza/book">
<tr>
<xsl:for-eachselect="./*">
<td><xsl:value-ofselect="."/></td>
</xsl:for-each>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>

</xsl:stylesheet>

时间: 2024-12-22 15:59:39

使用xmldom在服务器端生成静态html页面的相关文章

使用xmldom在服务器端生成静态html页面_XML/RSS

服务器端的生成的页面数据,为了提高访问速度,往往需要生成静态的htm页面.通常,可以使用fso生成静态的htm页.但如果是fso被禁止或没有使用fso的权限,就需要其他的方法来解决.利用xmldom,使用其save()方法就是一个很好的解决之道.而且,如果数据是xml格式,使用save()比使用fso速度要快,代码的复用率也高. 但需要注意的是:调用xmldom.save()方法时,默认的编码方式是"uft-8".如果指定文档输出类型为"html",由于其不可指定编

ASP生成静态htm页面基本代码!

ASP生成静态htm页面基本代码! 以下虚线框内为mk.asp文件的具体代码: -------------------------------------------------------------------------------- <% filename="test.htm" if request("body")<>"" then set fso = Server.CreateObject("Scriptin

PHP 动态生成静态HTML页面示例代码

 这篇文章主要为大家分享下PHP 动态生成静态HTML页面示例代码,需要的朋友可以参考下 temp.html   代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/

JSP怎么生成静态HTML页面

问题描述 JSP怎么生成静态HTML页面 JSP怎么生成静态HTML页面,在eclipse平台里,用Java代码 解决方案 用servlet的response直接输出html页面代码即可. 解决方案二: public class HTMLMaker { final static Object lock = new Object(); public static void makeHtml(String page, String filePath){ makeHtml(page,filePath,

PHP 动态生成静态HTML页面示例代码_php实例

temp.html 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-eq

php生成静态html页面的方法(2种方法)_php实例

因为每次用户点击动态链接的时候都会对服务器发送数据查询的要求,对于一个访问量可能达百万千万级别的网站来说 这无疑是服务器一个大大的负担,所以把动态数据转换成静态html页面就成了节省人力物力的首选. 因为此前没有相应的经验 刚开始的时候觉得这个技术很神秘,但在看了一些例子以后发现并不是那么复杂(不过网上的资料并不是特别详细),经过一个上午加中下午的试验 终于把该做的任务完成了 下面是一些心得和一个简单的例子 希望大虾们不要笑话我哈 一般来说 用php转换输出html页面有两种办法 引用大虾的文章

高手指教下,怎样安全生成静态的页面,并且保证数据同步.

问题描述 很久很久以前CSDN的帖子是XML格式的.它的数据具体是存成了*.xml文件,还是请求时生成的?现在全弄成静态页面.而且在提交的时候不刷新增加到当前页面.(不要空讲用Ajax,主要是,提交后它怎样存储资料,怎样保证资料操作时的异常处理.)另外在Blog中我发现,一旦网络不畅通的情况下,发送的回帖,并没有回显在我的页面上,刷新也看不见,但是,如果我再继续跟一帖,那么我现在发送的回复能看见,并且以前回复的那些也一起全部显示出来了.这是不是异步操作不完全的结果?比如讲,是不是:服务端保存了数

利用PHP生成静态html页面的原理_php技巧

前言 如果每次用户点击动态链接的时候都会对服务器发送数据查询的要求,对于一个访问量可能达百万千万级别的网站来说 这无疑是服务器一个大大的负担,所以把动态数据转换成静态html页面就成了节省人力物力的首选因为此前没有相应的经验,所以这篇文章和大家分享利用PHP生成静态html页面的原理和方法,有需要的可以一起来看看. 一.思路分析 其实,实现静态页面生成功能的原理很简单,主要利用几个常见的PHP文件操作函数对文件进行操作,其思路流程如下: 生成静态页面流程图 二.功能实现 设置example.ht

php生成静态html页面方法

下面讲的是用php生成静态html页面方法哦,方法有几种,各位朋友可以根据自己的实际情况来实现. 第一种:利用模板.目前PHP的模板可以说是很多了,有功能强大的smarty,还有简单易用的smarttemplate等.它们每一种模板,都有一个获取输出内容的函数.我们生成静态页面的方法,就是利用了这个函数.用这个方法的优点是,代码比较清晰,可读性好. 这里我用smarty做例子,说明如何生成静态页 require('smarty/Smarty.class.php'); $t = new Smart