XPath query syntax in XML

xiaoxiao2021-03-17  175

XPath is the XML query language, and the role of SQL is very similar. The following XML is an example, introducing the syntax of XPath.

Empire Burlesque </ Title></p> <p><Artist> Bob Dylan </ Artist></p> <p><price> 10.90 </ price></p> <p></ cd></p> <p><cd country = "uk"></p> <p><title> hide your heart </ title></p> <p><Artist> Bonnie Tyler </ artist></p> <p><price> 9.90 </ price></p> <p></ cd></p> <p><cd country = "usa"></p> <p><title> greatest Hits </ Title></p> <p><Artist> Dolly Parton </ Artist></p> <p><price> 9.90 </ price></p> <p></ cd></p> <p></ catalog></p> <p>The positioning node XML is a tree structure, the structure of the data clip in the similar archive system, XPath is similar to the path naming method of the archive system. However, XPath is a pattern that can be selected in the XML file, and the path is in line with all nodes of a mode. For example, all Price elements can be used in Catalog under Catalog.</p> <p>/ catalog / cd / price</p> <p>If the beginning of XPath is a slash (/) representing this is an absolute path. If the beginning is two oblique lines (//) indicates that all elements in the file are selected, even if they are in the tree, different hierarchies are also selected. The following grammar will select all elements called CD in the file (any level in the tree will be selected):</p> <p>// CD</p> <p>Select Unknown Elements Use an asterisk (Wildcards, *) to select unknown elements. Below this grammar selection / Catalog / CD all child elements:</p> <p>/ catalog / cd / *</p> <p>The following grammar will elect the child elements of all Catalog, which contains the elements of the PRICE as a child.</p> <p>/ catalog / * / price</p> <p>The following grammar selection has two parent nodes called all elements of the Price.</p> <p>/ * / * / price</p> <p>The following grammar will select all the elements in the file.</p> <p>// *</p> <p>It is to be noted that if you want to access an elements that don't hierarchically, the XPath syntax must begin with two slashes (//), you want to access unknown elements to use an asterisk (*), as an asterisk can only represent unknown elements, Do not represent an unknown level of elements.</p> <p>Select branches to use brackets to select branches. The following syntax removes the first element called the CD from the child elements of Catalog. There is no 0 element in the definition of XPath.</p> <p>/ Catalog / CD [1]</p> <p>The following syntax is selected in the last CD element in Catalog: (Xpathj does not define the first element in the first () of [1] with the previous example.</p> <p>/ Catalog / CD [Last ()]</p> <p>The following syntax elects all / Catalog / CD elements containing the PRICE child elements.</p> <p>/ catalog / cd [price]</p> <p>The following syntax elects the value of the price element equal to 10.90 / Catalog / CD element</p> <p>/catalog/cd[proice=10.90]</p> <p>The following syntax elects the value of the Price element equal to all / catalog / cd elements of 10.90 / Catalog/cd[Price = 10.90]/price</p> <p>Select one or more paths to use the OR operational element (|) to select more than one path. E.g:</p> <p>/ catalog / cd / title | Catalog / CD / Artist</p> <p>Select all Title and Artist elements</p> <p>// Title | // Artist</p> <p>Select all Title and Artist and Price elements</p> <p>// Title | // Artist | // Price</p> <p>Select Properties In XPath, in addition to selecting an element, you can also select attributes. Attributes are out of @. For example, select all properties called Country in the file:</p> <p>@ County</p> <p>Select all CD elements containing this property:</p> <p>// CD [@country]</p> <p>The following syntax selection all CD elements containing properties</p> <p>// CD [@ *]</p> <p>The following syntax selects a CD element with a country property value UK</p> <p>// CD [@ country = 'uk']</p></div><div class="text-center mt-3 text-grey"> 转载请注明原文地址:https://www.9cbs.com/read-129518.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="129518" 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 = 'pNr2NyTREfdRVP5Zjk1BSvO_2BUNLFHj6v_2F8ELChrKCyNHudFVZ_2Ba8Ibab4qBh3edv1xbEBuAx_2FfrGJVaT'; 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>