XML Application (2): By passing parameters + data islands in XSL, implement a single XML of the client to display

zhaozj2021-02-16  24

For XML data, less data, you can download all the data at a time, put all on the client to complete the following example, display an XML file as the left and right frames, the left side display entries, and the content is displayed. Can be interpreted by the server locally.

Key: Use MSXML DOM object to the XSL template: IE6 MSXML3.0

EXAMPLES:

/ *** book.xml *** / XML-based ASP.NET development 42 dan wahlin / Wang Baoliang XML application UML modeling technology 32 david carlson / Zhou Jing Hou Meng Shen Jinhe et al < Book ID = "3"> Extreme Programming Research </ Title> <Pricing> 70 </ Pricing> <>> giancarrio succi / michele marchesi / Zhang Hui (translation) </ author> </ book> < Book ID = "4"> <Title> Design Patterns </ Title> <Pricing> 38 </ Pricing> <Author Erich Gamma / Richard Helm / Ralph Johnson / John Vlissides </ Author> </ book> </ Moonpiazza></p> <p>/ *** book.xsl *** / <? xml version = "1.0" encoding = "GB2312"?> <xsl: stylesheet version = "1.0" xmlns: xsl = "http://www.w3.org/ 1999 / XSL / Transform "></p> <p><XSL: Template Match = "/"> <html> <head> <script language = "javascript"> <xsl: comment> <! [cdata [var m_oxl; var m_sframeattr_left, m_sframeattr_main; var m_sxmlfile, m_sxsltfile;</p> <p>m_sxmlfile = ""; m_sxsltfile = "book_view.xsl"; // Specify the XSL file function window.onload () {var oxsldoc;</p> <p>m_sFrameName_left = "left_frame"; m_sFrameName_main = "main_frame"; m_oXSL = new ActiveXObject ( "MSXML2.XSLTemplate.3.0"); oXSLDoc = new ActiveXObject ( "MSXML2.FreeThreadedDOMDocument.3.0");</p> <p>OxSldoc.async = false; oxsldoc.Load (m_sxsltfile); m_oxsl.stylesheet = oxsldoc;</p> <p>INTPAGE ();} function initpage () {content.cols = "270, *"; viewframe (m_sframename_left);</p> <p>VAR Shtmlstr = "Please select Book ..."; EVAL (m_sframename_main ".document"). Open ("text / html", "gb2312"); evAl (m_sframen_main ".document"). Write (SHTMLSTR);</p> <p>}</p> <p>Function ViewFrame (p_sframename) {var oxslproc; var htmlstr;</p> <p>Oxslproc = m_oxsl.createprocessor (); oxslproc.input = xmldata;</p> <p>// keyword is specified, the left (or right) frame oXSLProc.addParameter ( "frameName_left", m_sFrameName_left); oXSLProc.addParameter ( "frameName_main", m_sFrameName_main); oXSLProc.addParameter ( "frameName", p_sFrameName); oXSLProc.transform () ;</p> <p>SHTMLSTR = OxSlProc.output; // Get transformationful strings</p> <p>Eval (p_sframename ".document"). Open ("text / html", "gb2312"); evAl (p_sframename ".document"). Write (shtmlstr);}</p> <p>Function viewData (p_sdataid) {var oxslproc; var htmlstr;</p> <p>oXSLProc = m_oXSL.createProcessor (); oXSLProc.input = xmlData; // specified parameter id is displayed p_sDataID data oXSLProc.addParameter ( "frameName_left", m_sFrameName_left); oXSLProc.addParameter ( "frameName_main", m_sFrameName_main); oXSLProc.addParameter ("framename", m_sframename_main; oxslproc.addparameter ("dataid", p_sdataid; oxslproc.transform ();</p> <p>SHTMLSTR = OxSlProc.output; // Get transformationful strings</p> <p>Eval (m_sframename_main ".document"). Open ("text / html", "gb2312"); evAl (m_sframename_main ".document"). Write (shtmlstr);}]> </ xsl: comment> </ Script> </ head> <xml id = "xmldata"> <xsl: Copy-of select = "*" /> </ xml> <frameset cols = "0, *" name = "content"> <frame name = "Left_frame" src = "about: blank" /> <frame name = "main_frame" src = "about: blank" /> </ frameset> </ html> </ xsl: template></p> <p></ xsl: stylesheet></p> <p>/ *** book_view.xsl *** / <? XML version = "1.0" eNCoding = "gb2312"?> <xsl: stylesheet version = "1.0" xmlns: xsl = "http://www.w3.org/ 1999 / XSL / Transform "></p> <p><xsl: param name = "framename_left" select = "'left_frame_null'" /> <xsl: param name = "framename_main" select = "'main_frame_null'" /></p> <p><xsl: param name = "framename" select = "''" /> <xsl: param name = "dataid" select = "'" /></p> <p><XSL: Template Match = "/"> <html> <head> <style type = "text / css"> body {font-size: 9pt;} td {font-size: 9pt;} a {font-size: 9pt;} </ stop> </ head></p> <p><XSL: Choose> <xsl: when test = "$ framename = $ framename_left"> <xsl: call-template name = "left_frame" /> </ xsl: when> <xsl: when test = "$ frameename = $ framename_main "> <XSL: Call-Template Name =" Main_Frame "/> </ xsl: by> </ xsl: choose></p> <p></ html> </ xsl: Template></p> <p><xsl: template name = "left_frame"> <xsl: for-each select = "moonpiazza / book"> <xsl: element name = "a"> <xsl: attribute name = "href"> JavaScript: Parent.ViewData <xsl: value-of select = "@ ID" />); </ xsl: attribute> <xsl: value-of select = "book name" /> </ xsl: Element> </ xsl: For-Each> </ xsl: template> <xsl: template name = "main_frame"> <xsl: choise> <xsl: when test = "$ dataid! = '> <table border =" 1 "width =" 500> <xsl: for-each select = "Moonpiazza / Book [@ID = $ dataid] / *"> <tr> <td width = "70> <xsl: value-of select =" name () " /> </ td> <td> <xsl: value-of select = "." /> </ td> </ tr> </ xsl: for-each> </ table> </ xsl: by> </ XSL: Choose> </ xsl: template></p> <p></ xsl: stylesheet></p> <p>: _)</p></div><div class="text-center mt-3 text-grey"> 转载请注明原文地址:https://www.9cbs.com/read-26458.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="26458" 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.059</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 = 'Qlj1N6cv8Mnb6LCsJF8vF9J07X017aBCelU_2FFlwEQeyCtYT_2FG6veMIYPXskLEhC9hYJsBEzkJK_2B_2BIaaI9FldSQ_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>