Empire Burl..."> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <link rel="stylesheet" href="../../css/main.css"> <link href="https://fonts.googleapis.com/css?family=Quicksand&display=swap" rel="stylesheet"> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script>window.jQuery || document.write('<script src="../../js/vendors/jquery-3.3.1.min.js"><\/script>')</script> <script>document.write('<script src="//pagea' + 'd2.googles' + 'yndication.com/pagea' + 'd/js/a' + 'dsby' + 'google.js"><\/script>')</script> <script> var superSpecialObject = {}; superSpecialObject['google_a' + 'd_client'] = 'ca-p' + 'ub-4469282388984999'; superSpecialObject['enable_page_level_a' + 'ds'] = true; (window['a' + 'dsbygoogle'] = window['a' + 'dsbygoogle'] || []).push(superSpecialObject); </script> </head> <body> <!--[if lte IE 9]> <p class="browserupgrade">You are using an <strong>outdated</strong> browser. Please <a href="https://browsehappy.com/">upgrade your browser</a> to improve your experience and security.</p> <![endif]--> <header class="page-header js-page-header"> <a class="page-header-logo-container" href="https://geek-questions.imtqy.com/index.html"></a> <div class="page-header-text">All geek questions in one place</div> </header> <section class="page js-page"> <div itemscope="" itemtype="http://schema.org/QAPage" class="page"> <div class="main-col" itemprop="mainEntity" itemscope="" itemtype="http://schema.org/Question"> <div class="question-header"> <h1 itemprop="name"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">XSLT adds elements to the same path</font></font></h1> </div> <div class="question"> <div class="question-row"> <div class="question-text"> <div class="description" itemprop="text"> <p><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Consider the following XML:</font></font></p> <pre class="prettyprint-override"><code class="hljs xml"><span class="hljs-meta"><?xml version="1.0" encoding="ISO-8859-1"?></span> <span class="hljs-tag"><<span class="hljs-name">catalog</span>></span> <span class="hljs-tag"><<span class="hljs-name">cd</span>></span> <span class="hljs-tag"><<span class="hljs-name">title</span>></span>Empire Burlesque<span class="hljs-tag"></<span class="hljs-name">title</span>></span> <span class="hljs-tag"><<span class="hljs-name">artist</span>></span> <span class="hljs-tag"><<span class="hljs-name">name</span>></span>Bob<span class="hljs-tag"></<span class="hljs-name">name</span>></span> <span class="hljs-tag"><<span class="hljs-name">surname</span>></span>Dylan<span class="hljs-tag"></<span class="hljs-name">surname</span>></span> <span class="hljs-tag"></<span class="hljs-name">artist</span>></span> <span class="hljs-tag"><<span class="hljs-name">country</span>></span>USA<span class="hljs-tag"></<span class="hljs-name">country</span>></span> <span class="hljs-tag"><<span class="hljs-name">company</span>></span>Columbia<span class="hljs-tag"></<span class="hljs-name">company</span>></span> <span class="hljs-tag"><<span class="hljs-name">price</span>></span>10.90<span class="hljs-tag"></<span class="hljs-name">price</span>></span> <span class="hljs-tag"><<span class="hljs-name">year</span>></span>1985<span class="hljs-tag"></<span class="hljs-name">year</span>></span> <span class="hljs-tag"></<span class="hljs-name">cd</span>></span> <span class="hljs-tag"></<span class="hljs-name">catalog</span>></span> </code></pre> <p><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">I want to add elements to this XML using XSLT to get the following result:</font></font></p> <pre class="prettyprint-override"><code class="hljs xml"><span class="hljs-meta"><?xml version="1.0" encoding="ISO-8859-1"?></span> <span class="hljs-tag"><<span class="hljs-name">catalog</span>></span> <span class="hljs-tag"><<span class="hljs-name">cd</span>></span> <span class="hljs-tag"><<span class="hljs-name">title</span>></span>Empire Burlesque<span class="hljs-tag"></<span class="hljs-name">title</span>></span> <span class="hljs-tag"><<span class="hljs-name">artist</span>></span> <span class="hljs-tag"><<span class="hljs-name">name</span>></span>Bob<span class="hljs-tag"></<span class="hljs-name">name</span>></span> <span class="hljs-tag"><<span class="hljs-name">surname</span>></span>Dylan<span class="hljs-tag"></<span class="hljs-name">surname</span>></span> <span class="hljs-comment"><!-- NEW --></span> <span class="hljs-tag"><<span class="hljs-name">middlename</span>></span>???<span class="hljs-tag"></<span class="hljs-name">middlename</span>></span> <span class="hljs-tag"></<span class="hljs-name">artist</span>></span> <span class="hljs-tag"><<span class="hljs-name">country</span>></span>USA<span class="hljs-tag"></<span class="hljs-name">country</span>></span> <span class="hljs-tag"><<span class="hljs-name">company</span>></span>Columbia<span class="hljs-tag"></<span class="hljs-name">company</span>></span> <span class="hljs-tag"><<span class="hljs-name">price</span>></span>10.90<span class="hljs-tag"></<span class="hljs-name">price</span>></span> <span class="hljs-tag"><<span class="hljs-name">year</span>></span>1985<span class="hljs-tag"></<span class="hljs-name">year</span>></span> <span class="hljs-comment"><!-- NEW --></span> <span class="hljs-tag"><<span class="hljs-name">comment</span>></span>great one<span class="hljs-tag"></<span class="hljs-name">comment</span>></span> <span class="hljs-tag"></<span class="hljs-name">cd</span>></span> <span class="hljs-comment"><!-- NEW --></span> <span class="hljs-tag"><<span class="hljs-name">cd</span>></span> <span class="hljs-tag"><<span class="hljs-name">title</span>></span>Hide your heart<span class="hljs-tag"></<span class="hljs-name">title</span>></span> <span class="hljs-tag"><<span class="hljs-name">artist</span>></span> <span class="hljs-tag"><<span class="hljs-name">name</span>></span>Bonnie<span class="hljs-tag"></<span class="hljs-name">name</span>></span> <span class="hljs-tag"><<span class="hljs-name">surname</span>></span>Tyler<span class="hljs-tag"></<span class="hljs-name">surname</span>></span> <span class="hljs-tag"></<span class="hljs-name">artist</span>></span> <span class="hljs-tag"><<span class="hljs-name">country</span>></span>UK<span class="hljs-tag"></<span class="hljs-name">country</span>></span> <span class="hljs-tag"><<span class="hljs-name">company</span>></span>CBS Records<span class="hljs-tag"></<span class="hljs-name">company</span>></span> <span class="hljs-tag"><<span class="hljs-name">price</span>></span>9.90<span class="hljs-tag"></<span class="hljs-name">price</span>></span> <span class="hljs-tag"><<span class="hljs-name">year</span>></span>1988<span class="hljs-tag"></<span class="hljs-name">year</span>></span> <span class="hljs-tag"></<span class="hljs-name">cd</span>></span> <span class="hljs-tag"></<span class="hljs-name">catalog</span>></span> </code></pre> <p><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">For this, I wrote the following XSLT:</font></font></p> <pre class="prettyprint-override"><code class="hljs xml"><span class="hljs-meta"><?xml version="1.0" encoding="ISO-8859-1"?></span><font></font> <font></font> <span class="hljs-tag"><<span class="hljs-name">xsl:stylesheet</span> <span class="hljs-attr">version</span>=<span class="hljs-string">"1.0"</span> <span class="hljs-attr">xmlns:xsl</span>=<span class="hljs-string">"http://www.w3.org/1999/XSL/Transform"</span>></span><font></font> <font></font> <span class="hljs-tag"><<span class="hljs-name">xsl:template</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"injectXml"</span>></span> <span class="hljs-tag"><<span class="hljs-name">xsl:param</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"whatToInject"</span>/></span> <span class="hljs-tag"><<span class="hljs-name">xsl:copy</span>></span> <span class="hljs-tag"><<span class="hljs-name">xsl:copy-of</span> <span class="hljs-attr">select</span>=<span class="hljs-string">"node() | @*"</span>/></span> <span class="hljs-tag"><<span class="hljs-name">xsl:copy-of</span> <span class="hljs-attr">select</span>=<span class="hljs-string">"$whatToInject"</span>/></span> <span class="hljs-tag"></<span class="hljs-name">xsl:copy</span>></span> <span class="hljs-tag"></<span class="hljs-name">xsl:template</span>></span><font></font> <font></font> <span class="hljs-tag"><<span class="hljs-name">xsl:template</span> <span class="hljs-attr">match</span>=<span class="hljs-string">"//catalog"</span>></span> <span class="hljs-tag"><<span class="hljs-name">xsl:call-template</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"injectXml"</span>></span> <span class="hljs-tag"><<span class="hljs-name">xsl:with-param</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"whatToInject"</span>></span> <span class="hljs-tag"><<span class="hljs-name">cd</span>></span> <span class="hljs-tag"><<span class="hljs-name">title</span>></span>Hide your heart<span class="hljs-tag"></<span class="hljs-name">title</span>></span> <span class="hljs-tag"><<span class="hljs-name">artist</span>></span> <span class="hljs-tag"><<span class="hljs-name">name</span>></span>Bonnie<span class="hljs-tag"></<span class="hljs-name">name</span>></span> <span class="hljs-tag"><<span class="hljs-name">surname</span>></span>Tyler<span class="hljs-tag"></<span class="hljs-name">surname</span>></span> <span class="hljs-tag"></<span class="hljs-name">artist</span>></span> <span class="hljs-tag"><<span class="hljs-name">country</span>></span>UK<span class="hljs-tag"></<span class="hljs-name">country</span>></span> <span class="hljs-tag"><<span class="hljs-name">company</span>></span>CBS Records<span class="hljs-tag"></<span class="hljs-name">company</span>></span> <span class="hljs-tag"><<span class="hljs-name">price</span>></span>9.90<span class="hljs-tag"></<span class="hljs-name">price</span>></span> <span class="hljs-tag"><<span class="hljs-name">year</span>></span>1988<span class="hljs-tag"></<span class="hljs-name">year</span>></span> <span class="hljs-tag"></<span class="hljs-name">cd</span>></span> <span class="hljs-tag"></<span class="hljs-name">xsl:with-param</span>></span> <span class="hljs-tag"></<span class="hljs-name">xsl:call-template</span>></span> <span class="hljs-tag"></<span class="hljs-name">xsl:template</span>></span><font></font> <font></font> <span class="hljs-tag"><<span class="hljs-name">xsl:template</span> <span class="hljs-attr">match</span>=<span class="hljs-string">"//cd[year=1985]"</span>></span> <span class="hljs-tag"><<span class="hljs-name">xsl:call-template</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"injectXml"</span>></span> <span class="hljs-tag"><<span class="hljs-name">xsl:with-param</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"whatToInject"</span>></span> <span class="hljs-tag"><<span class="hljs-name">comment</span>></span>great one<span class="hljs-tag"></<span class="hljs-name">comment</span>></span> <span class="hljs-tag"></<span class="hljs-name">xsl:with-param</span>></span> <span class="hljs-tag"></<span class="hljs-name">xsl:call-template</span>></span> <span class="hljs-tag"></<span class="hljs-name">xsl:template</span>></span><font></font> <font></font> <span class="hljs-tag"><<span class="hljs-name">xsl:template</span> <span class="hljs-attr">match</span>=<span class="hljs-string">"//cd[year=1985]/artist"</span>></span> <span class="hljs-tag"><<span class="hljs-name">xsl:call-template</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"injectXml"</span>></span> <span class="hljs-tag"><<span class="hljs-name">xsl:with-param</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"whatToInject"</span>></span> <span class="hljs-tag"><<span class="hljs-name">middlename</span>></span>???<span class="hljs-tag"></<span class="hljs-name">middlename</span>></span> <span class="hljs-tag"></<span class="hljs-name">xsl:with-param</span>></span> <span class="hljs-tag"></<span class="hljs-name">xsl:call-template</span>></span> <span class="hljs-tag"></<span class="hljs-name">xsl:template</span>></span><font></font> <font></font> <span class="hljs-tag"></<span class="hljs-name">xsl:stylesheet</span>></span> </code></pre> <p><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Why doesn't it work? </font><font style="vertical-align: inherit;">How to do it?</font></font></p> </div> <div class="favorite hidden"><i class="far fa-star"></i></div> <div class="votes-question"> <i class="glyphicon glyphicon-arrow-ups"></i> <div class="vote-count greenc" itemprop="upvoteCount"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"> +3 </font></font></div> <i class="glyphicon glyphicon-arrow-down"></i> </div> <div class="tags"> <a href="https://translate.googleusercontent.com/translate_c?depth=1&pto=aue&rurl=translate.google.com&sl=ru&sp=nmt4&tl=en&u=" class="tag" title="show questions tagged 'xslt'" rel="tag"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">xslt</font></font></a> </div> <div class="clearfix"></div> <div class="action-time"> <span itemprop="author" itemscope="" itemtype="http://schema.org/Person"><span itemprop="name"><a href="https://translate.googleusercontent.com/translate_c?depth=1&pto=aue&rurl=translate.google.com&sl=ru&sp=nmt4&tl=en&u=" rel="noopener" target="_blank"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Stefan</font></font></a></span></span> <time title="2010-05-21 14:31" itemprop="dateCreated" datetime="2010-05-21T14:31:52+0000"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"> May 21 '10 at 14:31</font></font></time> </div> <a class="aa-link" href="https://translate.googleusercontent.com/translate_c?depth=1&pto=aue&rurl=translate.google.com&sl=ru&sp=nmt4&tl=en&u=" target="_blank" rel="noopener"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">source </font></font></a> <a class="s-link" href="https://translate.googleusercontent.com/translate_c?depth=1&pto=aue&rurl=translate.google.com&sl=ru&sp=nmt4&tl=en&u=" title="share"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">share</font></font></a> <div class="clearfix"></div> </div> </div> </div> <ins style="height: 90px;display: block;" data-zxname="zx-adnet" data-zxadslot="ZX-QRST" data-zxw="0" data-zxh="90" data-zxid="2" data-overlay="false"> </ins> <div class="answers " id="answers_hash"> <div class="answers-header"> <span class="pull-left"><span itemprop="answerCount"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">2</font></font></span><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"> answers</font></font></span> <div class="clearfix"></div> </div> <div class="answer-pager hidden"> </div> <div class="answer accepted" id="5056131_hash" itemscope="" itemtype="http://schema.org/Answer" itemprop="acceptedAnswer"> <div class="answer-row"> <div class="answer-text"> <div class="desc" itemprop="text"> <p> <strong><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">This conversion is</font></font></strong><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"> :</font></font></p> <pre class="prettyprint-override"><code class="hljs xml"><span class="hljs-tag"><<span class="hljs-name">xsl:stylesheet</span> <span class="hljs-attr">version</span>=<span class="hljs-string">"1.0"</span> <span class="hljs-attr">xmlns:xsl</span>=<span class="hljs-string">"http://www.w3.org/1999/XSL/Transform"</span> <span class="hljs-attr">xmlns:my</span>=<span class="hljs-string">"my:my"</span> <span class="hljs-attr">exclude-result-prefixes</span>=<span class="hljs-string">"my xsl"</span> ></span> <span class="hljs-tag"><<span class="hljs-name">xsl:output</span> <span class="hljs-attr">omit-xml-declaration</span>=<span class="hljs-string">"yes"</span> <span class="hljs-attr">indent</span>=<span class="hljs-string">"yes"</span>/></span> <span class="hljs-tag"><<span class="hljs-name">xsl:strip-space</span> <span class="hljs-attr">elements</span>=<span class="hljs-string">"*"</span>/></span><font></font> <font></font> <span class="hljs-tag"><<span class="hljs-name">my:updates</span>></span> <span class="hljs-tag"><<span class="hljs-name">update</span> <span class="hljs-attr">num</span>=<span class="hljs-string">"1"</span>></span> <span class="hljs-tag"><<span class="hljs-name">comment</span>></span>great one<span class="hljs-tag"></<span class="hljs-name">comment</span>></span> <span class="hljs-tag"></<span class="hljs-name">update</span>></span> <span class="hljs-tag"><<span class="hljs-name">update</span> <span class="hljs-attr">num</span>=<span class="hljs-string">"2"</span>></span> <span class="hljs-tag"><<span class="hljs-name">middlename</span>></span>XXX<span class="hljs-tag"></<span class="hljs-name">middlename</span>></span> <span class="hljs-tag"></<span class="hljs-name">update</span>></span> <span class="hljs-tag"><<span class="hljs-name">update</span> <span class="hljs-attr">num</span>=<span class="hljs-string">"3"</span>></span> <span class="hljs-tag"><<span class="hljs-name">cd</span>></span> <span class="hljs-tag"><<span class="hljs-name">title</span>></span>Hide your heart<span class="hljs-tag"></<span class="hljs-name">title</span>></span> <span class="hljs-tag"><<span class="hljs-name">artist</span>></span> <span class="hljs-tag"><<span class="hljs-name">name</span>></span>Bonnie<span class="hljs-tag"></<span class="hljs-name">name</span>></span> <span class="hljs-tag"><<span class="hljs-name">surname</span>></span>Tyler<span class="hljs-tag"></<span class="hljs-name">surname</span>></span> <span class="hljs-tag"></<span class="hljs-name">artist</span>></span> <span class="hljs-tag"><<span class="hljs-name">country</span>></span>UK<span class="hljs-tag"></<span class="hljs-name">country</span>></span> <span class="hljs-tag"><<span class="hljs-name">company</span>></span>CBS Records<span class="hljs-tag"></<span class="hljs-name">company</span>></span> <span class="hljs-tag"><<span class="hljs-name">price</span>></span>9.90<span class="hljs-tag"></<span class="hljs-name">price</span>></span> <span class="hljs-tag"><<span class="hljs-name">year</span>></span>1988<span class="hljs-tag"></<span class="hljs-name">year</span>></span> <span class="hljs-tag"></<span class="hljs-name">cd</span>></span> <span class="hljs-tag"></<span class="hljs-name">update</span>></span> <span class="hljs-tag"></<span class="hljs-name">my:updates</span>></span><font></font> <font></font> <span class="hljs-tag"><<span class="hljs-name">xsl:output</span> <span class="hljs-attr">omit-xml-declaration</span>=<span class="hljs-string">"yes"</span>/></span> <span class="hljs-tag"><<span class="hljs-name">xsl:template</span> <span class="hljs-attr">match</span>=<span class="hljs-string">"node()|@*"</span>></span> <span class="hljs-tag"><<span class="hljs-name">xsl:copy</span>></span> <span class="hljs-tag"><<span class="hljs-name">xsl:apply-templates</span> <span class="hljs-attr">select</span>=<span class="hljs-string">"node()|@*"</span>/></span> <span class="hljs-tag"></<span class="hljs-name">xsl:copy</span>></span> <span class="hljs-tag"></<span class="hljs-name">xsl:template</span>></span><font></font> <font></font> <span class="hljs-tag"><<span class="hljs-name">xsl:template</span> <span class="hljs-attr">match</span>=<span class="hljs-string">"catalog"</span>></span> <span class="hljs-tag"><<span class="hljs-name">xsl:call-template</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"inject"</span>></span> <span class="hljs-tag"><<span class="hljs-name">xsl:with-param</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"pUpdate"</span> <span class="hljs-attr">select</span>=<span class="hljs-string">"3"</span>/></span> <span class="hljs-tag"></<span class="hljs-name">xsl:call-template</span>></span> <span class="hljs-tag"></<span class="hljs-name">xsl:template</span>></span><font></font> <font></font> <span class="hljs-tag"><<span class="hljs-name">xsl:template</span> <span class="hljs-attr">match</span>=<span class="hljs-string">"cd[year=1985]"</span>></span> <span class="hljs-tag"><<span class="hljs-name">xsl:call-template</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"inject"</span>></span> <span class="hljs-tag"><<span class="hljs-name">xsl:with-param</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"pUpdate"</span> <span class="hljs-attr">select</span>=<span class="hljs-string">"1"</span>/></span> <span class="hljs-tag"></<span class="hljs-name">xsl:call-template</span>></span> <span class="hljs-tag"></<span class="hljs-name">xsl:template</span>></span><font></font> <font></font> <span class="hljs-tag"><<span class="hljs-name">xsl:template</span> <span class="hljs-attr">match</span>=<span class="hljs-string">"cd[year=1985]/artist"</span>></span> <span class="hljs-tag"><<span class="hljs-name">xsl:call-template</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"inject"</span>></span> <span class="hljs-tag"><<span class="hljs-name">xsl:with-param</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"pUpdate"</span> <span class="hljs-attr">select</span>=<span class="hljs-string">"2"</span>/></span> <span class="hljs-tag"></<span class="hljs-name">xsl:call-template</span>></span> <span class="hljs-tag"></<span class="hljs-name">xsl:template</span>></span><font></font> <font></font> <span class="hljs-tag"><<span class="hljs-name">xsl:template</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"inject"</span>></span> <span class="hljs-tag"><<span class="hljs-name">xsl:param</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"pUpdate"</span>/></span><font></font> <font></font> <span class="hljs-tag"><<span class="hljs-name">xsl:copy</span>></span> <span class="hljs-tag"><<span class="hljs-name">xsl:apply-templates</span> <span class="hljs-attr">select</span>=<span class="hljs-string">"node()|@*"</span>/></span> <span class="hljs-tag"><<span class="hljs-name">xsl:apply-templates</span> <span class="hljs-attr">select</span>= <span class="hljs-string">"document('')/*/my:updates/*[@num=$pUpdate]/node()"</span>/></span> <span class="hljs-tag"></<span class="hljs-name">xsl:copy</span>></span> <span class="hljs-tag"></<span class="hljs-name">xsl:template</span>></span><font></font> <font></font> <span class="hljs-tag"><<span class="hljs-name">xsl:template</span> <span class="hljs-attr">match</span>=<span class="hljs-string">"*[ancestor::my:updates]"</span>></span> <span class="hljs-tag"><<span class="hljs-name">xsl:element</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"{name()}"</span> <span class="hljs-attr">namespace</span>=<span class="hljs-string">"{namespace-uri()}"</span>></span> <span class="hljs-tag"><<span class="hljs-name">xsl:copy-of</span> <span class="hljs-attr">select</span>= <span class="hljs-string">"namespace::*[not(name()='my' or name()='xsl')]"</span>/></span> <span class="hljs-tag"><<span class="hljs-name">xsl:apply-templates</span> <span class="hljs-attr">select</span>=<span class="hljs-string">"node()|@*"</span>/></span> <span class="hljs-tag"></<span class="hljs-name">xsl:element</span>></span> <span class="hljs-tag"></<span class="hljs-name">xsl:template</span>></span> <span class="hljs-tag"></<span class="hljs-name">xsl:stylesheet</span>></span> </code></pre> <p> <strong><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"> when applied to the provided XML document:</font></font></strong></p> <pre class="prettyprint-override"><code class="hljs xml"><span class="hljs-tag"><<span class="hljs-name">catalog</span>></span> <span class="hljs-tag"><<span class="hljs-name">cd</span>></span> <span class="hljs-tag"><<span class="hljs-name">title</span>></span>Empire Burlesque<span class="hljs-tag"></<span class="hljs-name">title</span>></span> <span class="hljs-tag"><<span class="hljs-name">artist</span>></span> <span class="hljs-tag"><<span class="hljs-name">name</span>></span>Bob<span class="hljs-tag"></<span class="hljs-name">name</span>></span> <span class="hljs-tag"><<span class="hljs-name">surname</span>></span>Dylan<span class="hljs-tag"></<span class="hljs-name">surname</span>></span> <span class="hljs-tag"></<span class="hljs-name">artist</span>></span> <span class="hljs-tag"><<span class="hljs-name">country</span>></span>USA<span class="hljs-tag"></<span class="hljs-name">country</span>></span> <span class="hljs-tag"><<span class="hljs-name">company</span>></span>Columbia<span class="hljs-tag"></<span class="hljs-name">company</span>></span> <span class="hljs-tag"><<span class="hljs-name">price</span>></span>10.90<span class="hljs-tag"></<span class="hljs-name">price</span>></span> <span class="hljs-tag"><<span class="hljs-name">year</span>></span>1985<span class="hljs-tag"></<span class="hljs-name">year</span>></span> <span class="hljs-tag"></<span class="hljs-name">cd</span>></span> <span class="hljs-tag"></<span class="hljs-name">catalog</span>></span> </code></pre> <p> <strong><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">creates the desired, correct result</font></font></strong><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"> :</font></font></p> <pre class="prettyprint-override"><code class="hljs xml"><span class="hljs-tag"><<span class="hljs-name">catalog</span>></span> <span class="hljs-tag"><<span class="hljs-name">cd</span>></span> <span class="hljs-tag"><<span class="hljs-name">title</span>></span>Empire Burlesque<span class="hljs-tag"></<span class="hljs-name">title</span>></span> <span class="hljs-tag"><<span class="hljs-name">artist</span>></span> <span class="hljs-tag"><<span class="hljs-name">name</span>></span>Bob<span class="hljs-tag"></<span class="hljs-name">name</span>></span> <span class="hljs-tag"><<span class="hljs-name">surname</span>></span>Dylan<span class="hljs-tag"></<span class="hljs-name">surname</span>></span> <span class="hljs-tag"><<span class="hljs-name">middlename</span>></span>XXX<span class="hljs-tag"></<span class="hljs-name">middlename</span>></span> <span class="hljs-tag"></<span class="hljs-name">artist</span>></span> <span class="hljs-tag"><<span class="hljs-name">country</span>></span>USA<span class="hljs-tag"></<span class="hljs-name">country</span>></span> <span class="hljs-tag"><<span class="hljs-name">company</span>></span>Columbia<span class="hljs-tag"></<span class="hljs-name">company</span>></span> <span class="hljs-tag"><<span class="hljs-name">price</span>></span>10.90<span class="hljs-tag"></<span class="hljs-name">price</span>></span> <span class="hljs-tag"><<span class="hljs-name">year</span>></span>1985<span class="hljs-tag"></<span class="hljs-name">year</span>></span> <span class="hljs-tag"><<span class="hljs-name">comment</span>></span>great one<span class="hljs-tag"></<span class="hljs-name">comment</span>></span> <span class="hljs-tag"></<span class="hljs-name">cd</span>></span> <span class="hljs-tag"><<span class="hljs-name">cd</span>></span> <span class="hljs-tag"><<span class="hljs-name">title</span>></span>Hide your heart<span class="hljs-tag"></<span class="hljs-name">title</span>></span> <span class="hljs-tag"><<span class="hljs-name">artist</span>></span> <span class="hljs-tag"><<span class="hljs-name">name</span>></span>Bonnie<span class="hljs-tag"></<span class="hljs-name">name</span>></span> <span class="hljs-tag"><<span class="hljs-name">surname</span>></span>Tyler<span class="hljs-tag"></<span class="hljs-name">surname</span>></span> <span class="hljs-tag"></<span class="hljs-name">artist</span>></span> <span class="hljs-tag"><<span class="hljs-name">country</span>></span>UK<span class="hljs-tag"></<span class="hljs-name">country</span>></span> <span class="hljs-tag"><<span class="hljs-name">company</span>></span>CBS Records<span class="hljs-tag"></<span class="hljs-name">company</span>></span> <span class="hljs-tag"><<span class="hljs-name">price</span>></span>9.90<span class="hljs-tag"></<span class="hljs-name">price</span>></span> <span class="hljs-tag"><<span class="hljs-name">year</span>></span>1988<span class="hljs-tag"></<span class="hljs-name">year</span>></span> <span class="hljs-tag"></<span class="hljs-name">cd</span>></span> <span class="hljs-tag"></<span class="hljs-name">catalog</span>></span> </code></pre> </div> <div class="votes-answer"> <i class="glyphicon glyphicon-arrow-ups"></i> <div class="vote-count greenc" itemprop="upvoteCount"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"> +1 </font></font></div> <i class="glyphicon glyphicon-arrow-down"></i> </div> <div class="clearfix"></div> <div class="action-time"> <span itemprop="author" itemscope="" itemtype="http://schema.org/Person"><span itemprop="name"><a href="https://translate.googleusercontent.com/translate_c?depth=1&pto=aue&rurl=translate.google.com&sl=ru&sp=nmt4&tl=en&u=" rel="noopener" target="_blank"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Dimitre novatchev</font></font></a></span></span> <time title="2010-05-21 16:44" itemprop="dateCreated" datetime="2010-05-21T16:44:16+0000"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"> May 21 '10 at 16:44</font></font></time> </div> <a class="aa-link" href="https://translate.googleusercontent.com/translate_c?depth=1&pto=aue&rurl=translate.google.com&sl=ru&sp=nmt4&tl=en&u=" target="_blank" rel="noopener"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">source </font></font></a> <a itemprop="url" class="s-link" href="https://translate.googleusercontent.com/translate_c?depth=1&pto=aue&rurl=translate.google.com&sl=ru&sp=nmt4&tl=en&u=" title="share"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">share</font></font></a> <div class="clearfix"></div> </div> </div> </div> <ins style="height: 90px;display: block;margin-top: 15px;" data-zxname="zx-adnet" data-zxadslot="ZX-QRST" data-zxw="0" data-zxh="90" data-zxid="3" data-overlay="false"> </ins> <div class="answer last rltd" id="5056130_hash" itemscope="" itemtype="http://schema.org/Answer" itemprop="suggestedAnswer"> <div class="answer-row"> <div class="answer-text"> <div class="desc" itemprop="text"> <p><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">You tried</font></font></p> <p><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">match = "//Cd/year/[.= '1985']" </font></font></p> </div> <div class="votes-answer"> <i class="glyphicon glyphicon-arrow-ups"></i> <div class="vote-count " itemprop="upvoteCount"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"> 0 </font></font></div> <i class="glyphicon glyphicon-arrow-down"></i> </div> <div class="clearfix"></div> <div class="action-time"> <span itemprop="author" itemscope="" itemtype="http://schema.org/Person"><span itemprop="name"><a href="https://translate.googleusercontent.com/translate_c?depth=1&pto=aue&rurl=translate.google.com&sl=ru&sp=nmt4&tl=en&u=" rel="noopener" target="_blank"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Raj</font></font></a></span></span> <time title="2010-05-21 14:37" itemprop="dateCreated" datetime="2010-05-21T14:37:08+0000"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"> May 21, '10 at 14:37</font></font></time> </div> <a class="aa-link" href="https://translate.googleusercontent.com/translate_c?depth=1&pto=aue&rurl=translate.google.com&sl=ru&sp=nmt4&tl=en&u=" target="_blank" rel="noopener"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">source </font></font></a> <a itemprop="url" class="s-link" href="https://translate.googleusercontent.com/translate_c?depth=1&pto=aue&rurl=translate.google.com&sl=ru&sp=nmt4&tl=en&u=" title="share"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">share</font></font></a> <div class="clearfix"></div> </div> </div> </div> <div class="answer-pager hidden"> </div> </div> </div> </div> <p>Source: <a rel="nofollow" href="https://habr.com/ru/post/1746574/">https://habr.com/ru/post/1746574/</a></p> <section class="more-articles-navigation-panel js-more-articles-navigation-panel"> <h4>More articles:</h4> <nav class="list-of-articles-container js-list-of-articles-container"><ul class="list-of-pages js-list-of-pages"> <li><a href="../1746569/index.html">В проекте Maven, какие причины для вложенного или плоского макета каталога? - maven-2</a></li> <li><a href="../1746570/index.html">How to configure the installer from a Cocoa project? - installer</a></li> <li><a href="../1746571/index.html">Home GWT and Java - the best route when exiting the LAMP background? - java</a></li> <li><a href="../1746572/index.html">C ++ .NET DLL vs C # Managed Code? (AES-128 + XTS file encryption) - c ++</a></li> <li><a href="../1746573/index.html">Dynamic stack allocation in C ++ - c ++</a></li> <li><a href="../1746575/index.html">Calling a web service from javascript and .net 2.0 - jquery</a></li> <li><a href="../1746576/index.html">Database table schema schema - varchar (n). Suitable choice N - sql</a></li> <li><a href="../1746577/index.html">What is the cleanest way to use anonymous functions? - lambda</a></li> <li><a href="../1746578/index.html">https://translate.googleusercontent.com/translate_c?depth=1&pto=aue&rurl=translate.google.com&sl=ru&sp=nmt4&tl=en&u=https://fooobar.com/questions/1746578/libarchive-reads-too-many-chars-when-extracting-a-file&usg=ALkJrhgOIVMR1NqTKS3UZJ23PQ9rCAeY9g</a></li> <li><a href="../1746579/index.html">https://translate.googleusercontent.com/translate_c?depth=1&pto=aue&rurl=translate.google.com&sl=ru&sp=nmt4&tl=en&u=https://fooobar.com/questions/1746579/java-using-multiple-threads-to-paint-simultaniously-on-a-jpanel&usg=ALkJrhhqTRjt08KLrmDTpuxuPa6BkTKC7Q</a></li> </ul></nav> </section><br /> <a href="../../allArticles.html"><strong>All Articles</strong></a> <script src="../../js/main.js"></script> <!-- Yandex.Metrika counter --> <script type="text/javascript" > (function (d, w, c) { (w[c] = w[c] || []).push(function() { try { w.yaCounter62683636 = new Ya.Metrika({ id:62683636, clickmap:true, trackLinks:true, accurateTrackBounce:true, webvisor:true }); } catch(e) { } }); var n = d.getElementsByTagName("script")[0], s = d.createElement("script"), f = function () { n.parentNode.insertBefore(s, n); }; s.type = "text/javascript"; s.async = true; s.src = "https://mc.yandex.ru/metrika/watch.js"; if (w.opera == "[object Opera]") { d.addEventListener("DOMContentLoaded", f, false); } else { f(); } })(document, window, "yandex_metrika_callbacks"); </script> <noscript><div><img src="https://mc.yandex.ru/watch/62683636" style="position:absolute; left:-9999px;" alt="" /></div></noscript> <!-- Google Analytics --> <script> window.ga = function () { ga.q.push(arguments) }; ga.q = []; ga.l = +new Date; ga('create', 'UA-166339405-1', 'auto'); ga('send', 'pageview') </script> <script src="https://www.google-analytics.com/analytics.js" async defer></script> </section> <footer class="page-footer"> <div class="page-footer-legal-info-container page-footer-element"> <p> Geek Questions | <span class="page-footer-legal-info-year js-page-footer-legal-info-year">2019</span> </p> </div> <div class="page-footer-counters-container page-footer-element"> <a class="page-footer-counter-clustrmap" href='#' title='Visit tracker'><img src='https://clustrmaps.com/map_v2.png?cl=698e5a&w=271&t=t&d=x9KFE5t3Mv44EqtuX_BNXcB69A0sIUZAkKxnezcia0Y&co=3a3a3a&ct=ffffff'/></a> </div> </footer> </body> </html>