XML application (1): use XMLDOM to generate a static HTML page in the server side

zhaozj2021-02-16  24

The generated page data of the server side, in order to improve access speed, it is often necessary to generate a static HTM page. Typically, FSO can be used to generate a static HTM page. However, if the FSO is prohibited or does not use FSO, other methods need to be solved. Using XMLDOM, use its Save () method is a good solution. And, if the data is an XML format, use Save ( ) Is faster than using FSO, and the reuse rate of code is also high.

However, it should be noted that when calling an XMLDOM.SAVE () method, the default encoding method is "UFT-8". If the specified document output type is "html", since it cannot specify the encoding type, when the data contains Chinese characters, All Chinese characters will become garbled in the saved HTM data.

Workaround: Mechanism, usually the browser for the html type page, not explained for tags other than HTM tags. A. Specify the output document type "XML" b. Specify the encoding (Encoding = "GB2312") c. Specify reserved Ind retracting format (for easy reading)

EXAMPLES:

/ *** CREATE.ASP *** / <% DIM CXMLFILE, CXSLFILEDIM OXML, XSLDIM OOUTPUTDIM Chtmlfile, COUTPUTFILE

Chtmlfile = "book.htm" 'chtmlfile = "book_" & report (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 @ = Nothing

Response.Redirect (chtmlfile)%>

/ *** book.xml *** / Based on XML-based ASP.NET development </ book name> <pricing> 42 </ pricing> <author> dan wahlin / Wang Baoliang </ author> </ book> <book> <Title> XML Application UML Modeling Technology </ Title> <Pricing> 32 </ Pricing> <作者> David Carlson / Zhou Jinghou Yi Meng Shen Jinhe et al. </ Author> </ book> <book> <Title> Extreme Programming Research / Title> <pricing> 70 </ pricing> <author> giancarrio succi / michele marchesi / Zhang Hui (translation) </ author> </ book> <book> <Title> Design Patterns </ Title> <pricing > 38 </ pricing> <author> Erich Gamma / Richard Helm / Ralph Johnson / John Vlissides </ author> </ book> </ moonpiazza> / *** book.xsl *** / <? Xml Version = "1.0 "Encoding =" gb2312 "> <xsl: styleSheet XMLns: xsl =" http://www.w3.org/1999/xsl/transform "Version =" 1.0 "> <! - Here you must -> < XSL: Output method = "xml" encoding = "gb2312" indent = "yes" /></p> <p><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> </ 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></p> <p>: _)</p></div><div class="text-center mt-3 text-grey"> 转载请注明原文地址:https://www.9cbs.com/read-26459.html</div><div class="plugin d-flex justify-content-center mt-3"></div><hr><div class="row"><div class="col-lg-12 text-muted mt-2"><i class="icon-tags mr-2"></i><span class="badge border border-secondary mr-2"><h2 class="h6 mb-0 small"><a class="text-secondary" href="tag-2.html">9cbs</a></h2></span></div></div></div></div><div class="card card-postlist border-white shadow"><div class="card-body"><div class="card-title"><div class="d-flex justify-content-between"><div><b>New Post</b>(<span class="posts">0</span>) </div><div></div></div></div><ul class="postlist list-unstyled"> </ul></div></div><div class="d-none threadlist"><input type="checkbox" name="modtid" value="26459" checked /></div></div></div></div></div><footer class="text-muted small bg-dark py-4 mt-3" id="footer"><div class="container"><div class="row"><div class="col">CopyRight © 2020 All Rights Reserved </div><div class="col text-right">Processed: <b>0.042</b>, SQL: <b>9</b></div></div></div></footer><script src="./lang/en-us/lang.js?2.2.0"></script><script src="view/js/jquery.min.js?2.2.0"></script><script src="view/js/popper.min.js?2.2.0"></script><script src="view/js/bootstrap.min.js?2.2.0"></script><script src="view/js/xiuno.js?2.2.0"></script><script src="view/js/bootstrap-plugin.js?2.2.0"></script><script src="view/js/async.min.js?2.2.0"></script><script src="view/js/form.js?2.2.0"></script><script> var debug = DEBUG = 0; var url_rewrite_on = 1; var url_path = './'; var forumarr = {"1":"Tech"}; var fid = 1; var uid = 0; var gid = 0; xn.options.water_image_url = 'view/img/water-small.png'; </script><script src="view/js/wellcms.js?2.2.0"></script><a class="scroll-to-top rounded" href="javascript:void(0);"><i class="icon-angle-up"></i></a><a class="scroll-to-bottom rounded" href="javascript:void(0);" style="display: inline;"><i class="icon-angle-down"></i></a></body></html><script> var forum_url = 'list-1.html'; var safe_token = 'crtPUgQp2NTzDTgJThiQnIrKtTgjyN_2BcoC55L1cGRJ4MiJ_2FoFzu5bCxqG_2BoqW6jkSGmimufX7kEm6CFhneRl7g_3D_3D'; var body = $('body'); body.on('submit', '#form', function() { var jthis = $(this); var jsubmit = jthis.find('#submit'); jthis.reset(); jsubmit.button('loading'); var postdata = jthis.serializeObject(); $.xpost(jthis.attr('action'), postdata, function(code, message) { if(code == 0) { location.reload(); } else { $.alert(message); jsubmit.button('reset'); } }); return false; }); function resize_image() { var jmessagelist = $('div.message'); var first_width = jmessagelist.width(); jmessagelist.each(function() { var jdiv = $(this); var maxwidth = jdiv.attr('isfirst') ? first_width : jdiv.width(); var jmessage_width = Math.min(jdiv.width(), maxwidth); jdiv.find('img, embed, iframe, video').each(function() { var jimg = $(this); var img_width = this.org_width; var img_height = this.org_height; if(!img_width) { var img_width = jimg.attr('width'); var img_height = jimg.attr('height'); this.org_width = img_width; this.org_height = img_height; } if(img_width > jmessage_width) { if(this.tagName == 'IMG') { jimg.width(jmessage_width); jimg.css('height', 'auto'); jimg.css('cursor', 'pointer'); jimg.on('click', function() { }); } else { jimg.width(jmessage_width); var height = (img_height / img_width) * jimg.width(); jimg.height(height); } } }); }); } function resize_table() { $('div.message').each(function() { var jdiv = $(this); jdiv.find('table').addClass('table').wrap('<div class="table-responsive"></div>'); }); } $(function() { resize_image(); resize_table(); $(window).on('resize', resize_image); }); var jmessage = $('#message'); jmessage.on('focus', function() {if(jmessage.t) { clearTimeout(jmessage.t); jmessage.t = null; } jmessage.css('height', '6rem'); }); jmessage.on('blur', function() {jmessage.t = setTimeout(function() { jmessage.css('height', '2.5rem');}, 1000); }); $('#nav li[data-active="fid-1"]').addClass('active'); </script>