Learn XSL (3)

zhaozj2021-02-08  227

After a few days ago, we learned the writing and and three XSL elements of the XHTML document, which can be written in a fairly flexible XSL document. Today, it will learn the writing of XSL templates. We all know that short documents, the program is very good, but after the size increases, its complexity is also increased faster. We learned , , etc., you can use them to simply format the output for XML data, but if you encounter more complex XML format output, XSL follow request Write down, one is the difficulty of design, the scalability is poor, which is not conducive to the division of labor; the other, the modification is very poor, maybe the situation will move the army, which is not conducive to maintenance. The method of modular design in the program has been applied here! The XSL template refers to the design of XSL into a template (block), and finally combines these templates (blocks) into a complete XSL; it is better than ship and containers, we don't pile up all the goods, but Put these containers on the ship and then put these containers on the boat. This method allows you to consider the entire XSL design from the whole, then refine some of the forms into different modules, and then design these modules, and finally integrate them together, so that the macro is combined with micro. People have nature, standardize the requirements. Container? ? Writing template (block): syntax: Property: match - what kind of case is performed template. As a simplified description, the name of the tag is used here; where the top layer template must set the match to "/" Language - determine what scripting language in this template, which is valued with the Script tag in HTML The value of the Language property is the same. The default is the JScript Use the Match property to select a node that satisfies the condition from XML, and the template for forming a specific output form for these specific nodes. Hanging boxing box -? ? Call Template (block): Syntax: Property: SELECT - Determine what template should be performed in this context environment, that is, the template (block) created with the tag.

Order-by ─ Sort by sequencing standard, usually a sequence of sub-tags: Taking personal resume as an example, for ease of handling each of our hopes "skills" to use tags to < / skill> How many skills are enclosed, how many skills have such a marker pair, and the modified personal resume XML document is as follows: 初 初 male 1977.5 Database Design and Maintenance Web Development then create a new XSL file resume_template.xsl, using template form, its contents are as follows: Personal resume </ title> </ head> <body> <xsl: Apply-Templates Select = "Document / Resume" /> </ body> </ html > </ xsl: template> <! - Resume Template -> <XSL: Template Match = "Resume"> <Table Border = "1" Cellspacing = "0"> <Caption> Personal Resume (<XSL: EVAL> Formatindex (ChildNumber (this), "I") </ xsl: eval>) </ CAPTION> <XSL: Apply-Templates Select = "Name" /> <xsl: Apply-Templates Select = "SEX" /> <XSL : Apply-Templates SEL ECT = "birthday" /> <tr /> <TD> Skill </ TD> <TD Colspan = "5"> <Table Cellspacing = "0"> <XSL: Apply-Templates SELECT = "Skill" /> </ Table></p></div><div class="text-center mt-3 text-grey"> 转载请注明原文地址:https://www.9cbs.com/read-1645.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="1645" 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.044</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 = 'fOORfihYddh8f0BOxtRDZQb_2BfQU0nBE_2FpGA32_2FK_2B75KVHujWBnGVvUgiES98L7ouX2lj8zy2SFEFoc9W'; 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>