Heim  >  Artikel  >  Backend-Entwicklung  >  Verwenden Sie xmldom, um statische HTML-Seiten auf der Serverseite zu generieren

Verwenden Sie xmldom, um statische HTML-Seiten auf der Serverseite zu generieren

黄舟
黄舟Original
2017-03-06 16:43:311670Durchsuche

Um die Zugriffsgeschwindigkeit für serverseitig generierte Seitendaten zu verbessern, ist es häufig erforderlich, statische HTML-Seiten zu generieren.
Normalerweise können Sie fso verwenden, um statische HTML-Seiten zu generieren.
Wenn fso jedoch verboten ist oder Sie keine Berechtigung zur Verwendung von fso haben, benötigen Sie andere Methoden, um das Problem zu lösen.
Die Verwendung von xmldom und der Verwendung seiner save()-Methode ist eine gute Lösung Die Daten liegen im XML-Format vor, die Verwendung von save() ist schneller als die Verwendung von fso und die Code-Wiederverwendungsrate ist ebenfalls hoch.

Aber bitte beachten Sie:

Beim Aufruf der xmldom.save()-Methode ist die Standardkodierungsmethode „uft-8“.
Wenn der angegebene Dokumentausgabetyp „html“ ist Wenn die Daten chinesische Zeichen enthalten, werden Sie feststellen, dass alle chinesischen Zeichen in den gespeicherten HTML-Daten verstümmelt sind.

Lösung:

Mechanismus, der vom Browser normalerweise nicht akzeptiert wird der HTML-Typ Die Seite interpretiert keine anderen Tags als HTM-Tags.
a Geben Sie den Ausgabedokumenttyp als „xml“ an
b Geben Sie die Codierung an (encoding="gb2312")
c Einrückungsformat (zum einfachen Lesen)

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>
Das Obige ist der Inhalt der Verwendung von xmldom zum Generieren statischer HTML-Seiten auf der Serverseite. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www. php.cn)!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn