当前位置: 首页 > 图文教程 > 网络编程 > ASP > xmldom在服务器端生成静态html页面

ASP
嵌入式Web视频点播系统实现方法
GB与BIG5内码转换COM原代码
金额阿拉伯数字转换为中文的存储过程
利用 WSH 作定时工作流程
用InstallShield 进行 ASP 软件的打包和自动安装
服务器获得客户端时间的方法
关于如何读出图片的高度与长度的总结
按下回车键指向下一个位置的一个函数
一个不错的随机函数
一套加解密字符串的函数
一段加密函数(base64)
一段加密函数
使用asp实现支持附件的邮件系统(三)
使用asp实现支持附件的邮件系统(二)
使用asp实现支持附件的邮件系统(一)
检查当前目录下是否存在指定的文件,如果存在就重新命名
MD5加密的javascript实现例子
如何在服务器端调用winzip命令行对上传的多个文件打包压缩
MD5不可逆加密算法的ASP实现实例
看人家用使用InstallShield制作ASP安装程序(6)

ASP 中的 xmldom在服务器端生成静态html页面


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-28   浏览: 185 ::
收藏到网摘: n/a

  服务器端的生成的页面数据,为了提高访问速度,往往需要生成静态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 2007.12.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>