xmldom을 사용하여 서버 측에서 정적 HTML 페이지 생성

黄舟
풀어 주다: 2017-03-06 16:43:31
원래의
1721명이 탐색했습니다.

액세스 속도를 향상시키기 위해 서버 측에서 생성된 페이지 데이터에 대해 정적 HTML 페이지를 생성해야 하는 경우가 많습니다.
일반적으로 fso를 사용하여 정적 HTML 페이지를 생성할 수 있습니다.
그러나 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"
&#39;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 페이지를 생성하는 내용입니다. 더 많은 관련 내용을 보려면 PHP 중국어 웹사이트(www.php.php)를 참고하세요. CN)!


원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿