您好,欢迎访问一九零五行业门户网

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

服务器端的生成的页面数据,为了提高访问速度,往往需要生成静态的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 ***/ <% dim cxmlfile, cxslfile dim oxml, xsl dim ooutput dim chtmlfile, 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) set oxml = server.createobject("microsoft.xmldom") oxml.async = false oxml.load(cxmlfile) set oxsl = server.createobject("microsoft.xmldom") oxsl.async = false oxsl.load(cxslfile) set ooutput = server.createobject("microsoft.xmldom") call oxml.transformnodetoobject(oxsl, ooutput) ooutput.save (coutputfile) set oxml = nothing set oxsl = nothing set ooutput = nothing response.redirect(chtmlfile) %> /*** book.xml ***/ <?xml version="1.0" encoding="gb2312" ?> <?xml-stylesheet type="text/xsl" href="book.xsl"?> <moonpiazza> <book> <书名>基于xml 的 asp.net开发</书名> <定价>42</定价> <作者>dan wahlin/王宝良</作者> </book> <book> <书名>xml应用的uml建模技术</书名> <定价>32</定价> <作者>david carlson/周靖 侯奕萌 沈金河等</作者> </book> <book> <书名>极限编程研究</书名> <定价>70</定价> <作者>giancarrio succi/michele marchesi/张辉(译)</作者> </book> <book> <书名>design patterns</书名> <定价>38</定价> <作者>erich gamma/richard helm/ralph johnson/john vlissides</作者> </book> </moonpiazza> /*** book.xsl ***/ <?xml version="1.0" encoding="gb2312"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/xsl/transform" version="1.0"> <!-- 下面一句必须 --> <xsl:output method="xml" encoding="gb2312" indent="yes"/> <xsl:template match="/"> <html> <meta http-equiv="content-type" content="text/html; charset=gb2312" /> <!-- by moonpiazza 2003.6.13--> <body> <table border="1"> <tr> <xsl:for-each select="moonpiazza/book[position()=1]/*"> <td><xsl:value-of select="name()" /></td> </xsl:for-each> </tr> <xsl:for-each select="moonpiazza/book"> <tr> <xsl:for-each select="./*"> <td><xsl:value-of select="." /></td> </xsl:for-each> </tr> </xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet>
以上就是使用xmldom在服务器端生成静态html页面的内容。
其它类似信息

推荐信息