<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://wbex.ru/index.php?action=history&amp;feed=atom&amp;title=XML_Tutorial%2FXSLT_stylesheet%2Fvariable</id>
		<title>XML Tutorial/XSLT stylesheet/variable - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://wbex.ru/index.php?action=history&amp;feed=atom&amp;title=XML_Tutorial%2FXSLT_stylesheet%2Fvariable"/>
		<link rel="alternate" type="text/html" href="http://wbex.ru/index.php?title=XML_Tutorial/XSLT_stylesheet/variable&amp;action=history"/>
		<updated>2026-04-04T12:24:39Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://wbex.ru/index.php?title=XML_Tutorial/XSLT_stylesheet/variable&amp;diff=10889&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://wbex.ru/index.php?title=XML_Tutorial/XSLT_stylesheet/variable&amp;diff=10889&amp;oldid=prev"/>
				<updated>2010-05-26T08:27:01Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 08:27, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://wbex.ru/index.php?title=XML_Tutorial/XSLT_stylesheet/variable&amp;diff=10888&amp;oldid=prev</id>
		<title> в 18:22, 25 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://wbex.ru/index.php?title=XML_Tutorial/XSLT_stylesheet/variable&amp;diff=10888&amp;oldid=prev"/>
				<updated>2010-05-25T18:22:32Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Define and use variable==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
File: Data.xml&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;addressbook&amp;gt;&lt;br /&gt;
  &amp;lt;address&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;title&amp;gt;Ms.&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;first-name&amp;gt;Jack&amp;lt;/first-name&amp;gt;&lt;br /&gt;
      &amp;lt;last-name&amp;gt;Smith&amp;lt;/last-name&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;street&amp;gt;707 Main Way&amp;lt;/street&amp;gt;&lt;br /&gt;
    &amp;lt;city&amp;gt;New York&amp;lt;/city&amp;gt;&lt;br /&gt;
    &amp;lt;state&amp;gt;ME&amp;lt;/state&amp;gt;&lt;br /&gt;
    &amp;lt;zip&amp;gt;00218&amp;lt;/zip&amp;gt;&lt;br /&gt;
  &amp;lt;/address&amp;gt;&lt;br /&gt;
&amp;lt;/addressbook&amp;gt;&lt;br /&gt;
&lt;br /&gt;
File: Transform.xslt&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot;&lt;br /&gt;
  xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;text&amp;quot; indent=&amp;quot;no&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:strip-space elements=&amp;quot;*&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:variable name=&amp;quot;newline&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:text&amp;gt;&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:variable&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:for-each select=&amp;quot;addressbook/address&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:sort select=&amp;quot;name/last-name&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:value-of select=&amp;quot;name/title&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:value-of select=&amp;quot;name/first-name&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:value-of select=&amp;quot;name/last-name&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:value-of select=&amp;quot;$newline&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:value-of select=&amp;quot;street&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:value-of select=&amp;quot;$newline&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:value-of select=&amp;quot;city&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:text&amp;gt;, &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:value-of select=&amp;quot;state&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:text&amp;gt;  &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:value-of select=&amp;quot;zip&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:value-of select=&amp;quot;$newline&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:value-of select=&amp;quot;$newline&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
Output:&lt;br /&gt;
Ms. Jack Smith707 Main WayNew York, ME  00218&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Define variable and use it==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
File: Data.xml&lt;br /&gt;
&lt;br /&gt;
&amp;lt;x&amp;gt;&lt;br /&gt;
   &amp;lt;input&amp;gt;7&amp;lt;/input&amp;gt;&lt;br /&gt;
   &amp;lt;input&amp;gt;27&amp;lt;/input&amp;gt;&lt;br /&gt;
&amp;lt;/x&amp;gt;&lt;br /&gt;
File: Transform.xslt&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
  version=&amp;quot;1.0&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;text&amp;quot; indent=&amp;quot;yes&amp;quot; version=&amp;quot;1.0&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;x&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:apply-templates select=&amp;quot;y&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;y&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:param name=&amp;quot;x&amp;quot; select=&amp;quot;/x/input&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:variable name=&amp;quot;y&amp;quot; select=&amp;quot;$x - 1&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:variable name=&amp;quot;z&amp;quot; select=&amp;quot;.&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:value-of select=&amp;quot;$x&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:text&amp;gt; - 1 = &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:value-of select=&amp;quot;$y&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:text&amp;gt;&amp;amp;#013;&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;$x &amp;gt; 1&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:apply-templates select=&amp;quot;$z&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:with-param name=&amp;quot;x&amp;quot; select=&amp;quot;$x - 1&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:apply-templates&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== demonstrate different ways of setting xsl:variable==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
File: Data.xml&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;data&amp;gt;&lt;br /&gt;
  &amp;lt;chapter&amp;gt;Chapter A&amp;lt;/chapter&amp;gt;&lt;br /&gt;
  &amp;lt;chapter&amp;gt;Chapter B&amp;lt;/chapter&amp;gt;&lt;br /&gt;
  &amp;lt;chapter&amp;gt;Chapter C&amp;lt;/chapter&amp;gt;&lt;br /&gt;
  &amp;lt;chapter&amp;gt;Chapter D&amp;lt;/chapter&amp;gt;&lt;br /&gt;
&amp;lt;/data&amp;gt;&lt;br /&gt;
File: Transform.xslt&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet&lt;br /&gt;
      version=&amp;quot;1.0&amp;quot;&lt;br /&gt;
      xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:variable name=&amp;quot;totalChapters&amp;quot; select=&amp;quot;count(//chapter)&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;TABLE&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:for-each select=&amp;quot;//chapter&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TR&amp;gt;&lt;br /&gt;
            &amp;lt;TD&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:value-of select=&amp;quot;position()&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:text&amp;gt;/&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:value-of select=&amp;quot;$totalChapters&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
            &amp;lt;/TD&amp;gt;&lt;br /&gt;
          &amp;lt;/TR&amp;gt;&lt;br /&gt;
        &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
      &amp;lt;/TABLE&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
Output:&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&amp;lt;TABLE&amp;gt;&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;Chapter A (1/4)&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;Chapter B (2/4)&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;Chapter C (3/4)&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;Chapter D (4/4)&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&amp;lt;/TABLE&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Fill position to a variable==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
File: Data.xml&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;?xml-stylesheet type=&amp;quot;text/xsl&amp;quot; href=&amp;quot;Transform.xslt&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;nodeTester type=&amp;quot;referral&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;function&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;position() function&amp;lt;/name&amp;gt;&lt;br /&gt;
  &amp;lt;/function&amp;gt;&lt;br /&gt;
  &amp;lt;text&amp;gt;&lt;br /&gt;
    This function helps find the position of a node in the node&lt;br /&gt;
    list.&lt;br /&gt;
  &amp;lt;/text&amp;gt;&lt;br /&gt;
&amp;lt;/nodeTester&amp;gt;&lt;br /&gt;
File: Transform.xslt&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot;&lt;br /&gt;
  xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;text&amp;quot; indent=&amp;quot;no&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;nodeTester&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:apply-templates /&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:variable name=&amp;quot;myPositionVariable&amp;quot; select=&amp;quot;position()&amp;quot; /&amp;gt;&lt;br /&gt;
    NodeList position =&lt;br /&gt;
    &amp;lt;xsl:value-of select=&amp;quot;$myPositionVariable&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
Output:&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
    position() function&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
    NodeList position =&lt;br /&gt;
    4&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== if a variable has some defined value==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
File: Data.xml&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;data&amp;gt;&lt;br /&gt;
  &amp;lt;animal&amp;gt;cat&amp;lt;/animal&amp;gt;&lt;br /&gt;
  &amp;lt;animal&amp;gt;dog&amp;lt;/animal&amp;gt;&lt;br /&gt;
  &amp;lt;animal&amp;gt;cow&amp;lt;/animal&amp;gt;&lt;br /&gt;
&amp;lt;/data&amp;gt;&lt;br /&gt;
File: Transform.xslt&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet&lt;br /&gt;
      version=&amp;quot;1.0&amp;quot;&lt;br /&gt;
      xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:variable name=&amp;quot;color&amp;quot;&amp;gt;red&amp;lt;/xsl:variable&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:template match=&amp;quot;//animal&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:when test=&amp;quot;boolean($color)&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;P style=&amp;quot;color:{$color}&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/P&amp;gt;&lt;br /&gt;
        &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
          &amp;lt;paragraph&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/P&amp;gt;&lt;br /&gt;
        &amp;lt;/xsl:otherwise&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
Output:&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
  &amp;lt;P style=&amp;quot;color:red&amp;quot;&amp;gt;cat&amp;lt;/P&amp;gt;&lt;br /&gt;
  &amp;lt;P style=&amp;quot;color:red&amp;quot;&amp;gt;dog&amp;lt;/P&amp;gt;&lt;br /&gt;
  &amp;lt;P style=&amp;quot;color:red&amp;quot;&amp;gt;cow&amp;lt;/P&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== There is an important difference in variable value specification.==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
File: Data.xml&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;data&amp;gt;&lt;br /&gt;
    &amp;lt;AAA&amp;gt;&lt;br /&gt;
      &amp;lt;BBB&amp;gt;&lt;br /&gt;
        &amp;lt;CCC&amp;gt;C1&amp;lt;/CCC&amp;gt;&lt;br /&gt;
      &amp;lt;/BBB&amp;gt;&lt;br /&gt;
      &amp;lt;CCC&amp;gt;C2&amp;lt;/CCC&amp;gt;&lt;br /&gt;
      &amp;lt;CCC&amp;gt;C3&amp;lt;/CCC&amp;gt;&lt;br /&gt;
    &amp;lt;/AAA&amp;gt;&lt;br /&gt;
    &amp;lt;AAA&amp;gt;&lt;br /&gt;
      &amp;lt;CCC&amp;gt;&lt;br /&gt;
        &amp;lt;DDD&amp;gt;D1&amp;lt;/DDD&amp;gt;&lt;br /&gt;
        &amp;lt;DDD&amp;gt;D2&amp;lt;/DDD&amp;gt;&lt;br /&gt;
      &amp;lt;/CCC&amp;gt;&lt;br /&gt;
    &amp;lt;/AAA&amp;gt;&lt;br /&gt;
&amp;lt;/data&amp;gt;&lt;br /&gt;
File: Transform.xslt&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet&lt;br /&gt;
      version=&amp;quot;1.0&amp;quot;&lt;br /&gt;
      xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:variable name=&amp;quot;var1&amp;quot; select=&amp;quot;//AAA/CCC/text()&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:variable name=&amp;quot;var2&amp;quot;&amp;gt;//AAA/CCC/text()&amp;lt;/xsl:variable&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:call-template name=&amp;quot;function&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:with-param name=&amp;quot;path1&amp;quot; select=&amp;quot;//AAA/CCC/DDD&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:with-param name=&amp;quot;path2&amp;quot;&amp;gt;//AAA/CCC/DDD&amp;lt;/xsl:with-param&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:call-template&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:template name=&amp;quot;function&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:param name=&amp;quot;path1&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:param name=&amp;quot;path2&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;paragraph&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;$path2&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:text&amp;gt; : &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;$path1&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/P&amp;gt;&lt;br /&gt;
      &amp;lt;paragraph&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;$var2&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:text&amp;gt; : &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:for-each select=&amp;quot;$var1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:text/&amp;gt;&lt;br /&gt;
        &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
      &amp;lt;/P&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
Output:&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&amp;lt;paragraph&amp;gt;//AAA/CCC/DDD : D1&amp;lt;/P&amp;gt;&amp;lt;paragraph&amp;gt;//AAA/CCC/text() : C2C3&lt;br /&gt;
        &lt;br /&gt;
        &lt;br /&gt;
      &amp;lt;/P&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Use variable to hold a result tree==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
File: Data.xml&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;data&amp;gt;    &lt;br /&gt;
        &amp;lt;TABLE border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;TR&amp;gt;&lt;br /&gt;
        &amp;lt;TD&amp;gt;AAA&amp;lt;/TD&amp;gt;&lt;br /&gt;
        &amp;lt;TD&amp;gt;BBB&amp;lt;/TD&amp;gt;&lt;br /&gt;
      &amp;lt;/TR&amp;gt;&lt;br /&gt;
      &amp;lt;TR&amp;gt;&lt;br /&gt;
        &amp;lt;TD&amp;gt;aaa&amp;lt;/TD&amp;gt;&lt;br /&gt;
        &amp;lt;TD&amp;gt;bbb&amp;lt;/TD&amp;gt;&lt;br /&gt;
      &amp;lt;/TR&amp;gt;&lt;br /&gt;
    &amp;lt;/TABLE&amp;gt;&lt;br /&gt;
    &amp;lt;TABLE border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;TR&amp;gt;&lt;br /&gt;
        &amp;lt;TD&amp;gt;1111111&amp;lt;/TD&amp;gt;&lt;br /&gt;
      &amp;lt;/TR&amp;gt;&lt;br /&gt;
      &amp;lt;TR&amp;gt;&lt;br /&gt;
        &amp;lt;TD&amp;gt;22222222&amp;lt;/TD&amp;gt;&lt;br /&gt;
      &amp;lt;/TR&amp;gt;&lt;br /&gt;
      &amp;lt;/TABLE&amp;gt;&lt;br /&gt;
&amp;lt;/data&amp;gt;&lt;br /&gt;
File: Transform.xslt&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet&lt;br /&gt;
      version=&amp;quot;1.0&amp;quot;&lt;br /&gt;
      xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:variable name=&amp;quot;A1&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:copy-of select=&amp;quot;//TABLE[1]&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:variable&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:variable name=&amp;quot;A2&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:copy-of select=&amp;quot;//TABLE[2]&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:variable&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:copy-of select=&amp;quot;$A2&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:copy-of select=&amp;quot;$A1&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:copy-of select=&amp;quot;$A2&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
Output:&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&amp;lt;TABLE border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;TR&amp;gt;&lt;br /&gt;
        &amp;lt;TD&amp;gt;1111111&amp;lt;/TD&amp;gt;&lt;br /&gt;
      &amp;lt;/TR&amp;gt;&lt;br /&gt;
      &amp;lt;TR&amp;gt;&lt;br /&gt;
        &amp;lt;TD&amp;gt;22222222&amp;lt;/TD&amp;gt;&lt;br /&gt;
      &amp;lt;/TR&amp;gt;&lt;br /&gt;
      &amp;lt;/TABLE&amp;gt;&amp;lt;TABLE border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;TR&amp;gt;&lt;br /&gt;
        &amp;lt;TD&amp;gt;AAA&amp;lt;/TD&amp;gt;&lt;br /&gt;
        &amp;lt;TD&amp;gt;BBB&amp;lt;/TD&amp;gt;&lt;br /&gt;
      &amp;lt;/TR&amp;gt;&lt;br /&gt;
      &amp;lt;TR&amp;gt;&lt;br /&gt;
        &amp;lt;TD&amp;gt;aaa&amp;lt;/TD&amp;gt;&lt;br /&gt;
        &amp;lt;TD&amp;gt;bbb&amp;lt;/TD&amp;gt;&lt;br /&gt;
      &amp;lt;/TR&amp;gt;&lt;br /&gt;
    &amp;lt;/TABLE&amp;gt;&amp;lt;TABLE border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;TR&amp;gt;&lt;br /&gt;
        &amp;lt;TD&amp;gt;1111111&amp;lt;/TD&amp;gt;&lt;br /&gt;
      &amp;lt;/TR&amp;gt;&lt;br /&gt;
      &amp;lt;TR&amp;gt;&lt;br /&gt;
        &amp;lt;TD&amp;gt;22222222&amp;lt;/TD&amp;gt;&lt;br /&gt;
      &amp;lt;/TR&amp;gt;&lt;br /&gt;
      &amp;lt;/TABLE&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Variable assignment with choose statement==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
File: Data.xml&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;list xml:lang=&amp;quot;en&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;title&amp;gt;title 1&amp;lt;/title&amp;gt;&lt;br /&gt;
  &amp;lt;listitem&amp;gt;item 1&amp;lt;/listitem&amp;gt;&lt;br /&gt;
  &amp;lt;listitem&amp;gt;item 2&amp;lt;/listitem&amp;gt;&lt;br /&gt;
  &amp;lt;listitem&amp;gt;item 3&amp;lt;/listitem&amp;gt;&lt;br /&gt;
  &amp;lt;listitem xml:lang=&amp;quot;sw&amp;quot;&amp;gt;item 4&amp;lt;/listitem&amp;gt;&lt;br /&gt;
  &amp;lt;listitem xml:lang=&amp;quot;en-gb&amp;quot;&amp;gt;item 5&amp;lt;/listitem&amp;gt;&lt;br /&gt;
  &amp;lt;listitem xml:lang=&amp;quot;zu&amp;quot;&amp;gt;item 6&amp;lt;/listitem&amp;gt;&lt;br /&gt;
  &amp;lt;listitem xml:lang=&amp;quot;jz&amp;quot;&amp;gt;item 7&amp;lt;/listitem&amp;gt;&lt;br /&gt;
&amp;lt;/list&amp;gt;&lt;br /&gt;
&lt;br /&gt;
File: Transform.xslt&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; &lt;br /&gt;
  xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;text&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:variable name=&amp;quot;favoriteNumber&amp;quot; select=&amp;quot;23&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:variable name=&amp;quot;favoriteColor&amp;quot; select=&amp;quot;&amp;quot;blue&amp;quot;&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:variable name=&amp;quot;complicatedVariable&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:when test=&amp;quot;count(//listitem) &amp;amp;gt; 10&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:text&amp;gt;really long list&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:when test=&amp;quot;count(//listitem) &amp;amp;gt; 5&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:text&amp;gt;moderately long list&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:text&amp;gt;fairly short list&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:otherwise&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:variable&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:text&amp;gt;Hello!  Your favorite number is &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:value-of select=&amp;quot;$favoriteNumber&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:text&amp;gt;.&amp;amp;#xA;Your favorite color is &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:value-of select=&amp;quot;$favoriteColor&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:text&amp;gt;.&amp;amp;#xA;&amp;amp;#xA;Here is a &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:value-of select=&amp;quot;$complicatedVariable&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:text&amp;gt;:&amp;amp;#xA;&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:variable name=&amp;quot;listitems&amp;quot; select=&amp;quot;list/listitem&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:call-template name=&amp;quot;processListitems&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:with-param name=&amp;quot;items&amp;quot; select=&amp;quot;$listitems&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:call-template&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template name=&amp;quot;processListitems&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:param name=&amp;quot;items&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:variable name=&amp;quot;favoriteColor&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:text&amp;gt;chartreuse&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:variable&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    &amp;lt;xsl:text&amp;gt;    (Your favorite color is now &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:value-of select=&amp;quot;$favoriteColor&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:text&amp;gt;.)&amp;amp;#xA;&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:for-each select=&amp;quot;$items&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:value-of select=&amp;quot;position()&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:text&amp;gt;.  &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:text&amp;gt;&amp;amp;#xA;&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
Output:&lt;br /&gt;
Hello!  Your favorite number is 23.&lt;br /&gt;
Your favorite color is blue.&lt;br /&gt;
Here is a moderately long list:&lt;br /&gt;
    (Your favorite color is now chartreuse.)&lt;br /&gt;
1.  item 1&lt;br /&gt;
2.  item 2&lt;br /&gt;
3.  item 3&lt;br /&gt;
4.  item 4&lt;br /&gt;
5.  item 5&lt;br /&gt;
6.  item 6&lt;br /&gt;
7.  item 7&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Variable scope==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
File: Data.xml&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!-- testlines.xml --&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;A&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;B&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;C&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
File: Transform.xslt&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot;&lt;br /&gt;
  xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;text&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:apply-templates select=&amp;quot;ul/li&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;li&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:variable name=&amp;quot;single-quote&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:text&amp;gt;&amp;amp;apos;&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:variable&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:variable name=&amp;quot;two-quotes&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:text&amp;gt;&amp;amp;apos;&amp;amp;apos;&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:variable&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:variable name=&amp;quot;sub1&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:call-template name=&amp;quot;replace-substring&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:with-param name=&amp;quot;original&amp;quot; select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:with-param name=&amp;quot;substring&amp;quot; select=&amp;quot;&amp;quot;&amp;amp;amp;&amp;quot;&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:with-param name=&amp;quot;replacement&amp;quot; select=&amp;quot;&amp;quot;^&amp;amp;amp;&amp;quot;&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:call-template&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:variable&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:variable name=&amp;quot;sub2&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:call-template name=&amp;quot;replace-substring&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:with-param name=&amp;quot;original&amp;quot; select=&amp;quot;$sub1&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:with-param name=&amp;quot;substring&amp;quot; select=&amp;quot;&amp;quot;|&amp;quot;&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:with-param name=&amp;quot;replacement&amp;quot; select=&amp;quot;&amp;quot;^|&amp;quot;&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:call-template&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:variable&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:call-template name=&amp;quot;replace-substring&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:with-param name=&amp;quot;original&amp;quot; select=&amp;quot;$sub2&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:with-param name=&amp;quot;substring&amp;quot; select=&amp;quot;$single-quote&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:with-param name=&amp;quot;replacement&amp;quot; select=&amp;quot;$two-quotes&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:call-template&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:text&amp;gt;&amp;amp;#xA;&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template name=&amp;quot;replace-substring&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:param name=&amp;quot;original&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:param name=&amp;quot;substring&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:param name=&amp;quot;replacement&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:when test=&amp;quot;contains($original, $substring)&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of &lt;br /&gt;
          select=&amp;quot;substring-before($original, $substring)&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;$replacement&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:call-template name=&amp;quot;replace-substring&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:with-param name=&amp;quot;original&amp;quot; &lt;br /&gt;
            select=&amp;quot;substring-after($original, $substring)&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:with-param &lt;br /&gt;
            name=&amp;quot;substring&amp;quot; select=&amp;quot;$substring&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:with-param &lt;br /&gt;
            name=&amp;quot;replacement&amp;quot; select=&amp;quot;$replacement&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;/xsl:call-template&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;$original&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:otherwise&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;          &lt;br /&gt;
  &lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
Output:&lt;br /&gt;
A&lt;br /&gt;
B&lt;br /&gt;
C&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Variable without initialization==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
File: Data.xml&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;data&amp;gt;    &lt;br /&gt;
    &amp;lt;animal&amp;gt;cat&amp;lt;/animal&amp;gt;&lt;br /&gt;
    &amp;lt;animal&amp;gt;dog&amp;lt;/animal&amp;gt;&lt;br /&gt;
  &amp;lt;animal&amp;gt;cow&amp;lt;/animal&amp;gt;&lt;br /&gt;
&amp;lt;/data&amp;gt;&lt;br /&gt;
File: Transform.xslt&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet&lt;br /&gt;
      version=&amp;quot;1.0&amp;quot;&lt;br /&gt;
      xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:variable name=&amp;quot;color&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:template match=&amp;quot;//animal&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:when test=&amp;quot;boolean($color)&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;P style=&amp;quot;color:{$color}&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/P&amp;gt;&lt;br /&gt;
        &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
          &amp;lt;paragraph&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/P&amp;gt;&lt;br /&gt;
        &amp;lt;/xsl:otherwise&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
Output:&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;    &lt;br /&gt;
    &amp;lt;paragraph&amp;gt;cat&amp;lt;/P&amp;gt;&lt;br /&gt;
    &amp;lt;paragraph&amp;gt;dog&amp;lt;/P&amp;gt;&lt;br /&gt;
  &amp;lt;paragraph&amp;gt;cow&amp;lt;/P&amp;gt;&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
			</entry>

	</feed>