<?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%2Fgenerate_id</id>
		<title>XML Tutorial/XSLT stylesheet/generate id - История изменений</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%2Fgenerate_id"/>
		<link rel="alternate" type="text/html" href="http://wbex.ru/index.php?title=XML_Tutorial/XSLT_stylesheet/generate_id&amp;action=history"/>
		<updated>2026-04-04T12:08:09Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://wbex.ru/index.php?title=XML_Tutorial/XSLT_stylesheet/generate_id&amp;diff=10797&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/generate_id&amp;diff=10797&amp;oldid=prev"/>
				<updated>2010-05-26T08:26:55Z</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:26, 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/generate_id&amp;diff=10796&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/generate_id&amp;diff=10796&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;== Assign value from generate-id(.) to attribute==&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;greet&amp;gt;&lt;br /&gt;
 &amp;lt;greeting xml:lang=&amp;quot;en&amp;quot;&amp;gt;Welcome&amp;lt;/greeting&amp;gt;&lt;br /&gt;
 &amp;lt;greeting xml:lang=&amp;quot;fr&amp;quot;&amp;gt;Bienvenue&amp;lt;/greeting&amp;gt;&lt;br /&gt;
 &amp;lt;greeting xml:lang=&amp;quot;es&amp;quot;&amp;gt;Bienvenido&amp;lt;/greeting&amp;gt;&lt;br /&gt;
 &amp;lt;greeting xml:lang=&amp;quot;de&amp;quot;&amp;gt;Willkommen&amp;lt;/greeting&amp;gt;&lt;br /&gt;
&amp;lt;/greet&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 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;xml&amp;quot; indent=&amp;quot;yes&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output doctype-system=&amp;quot;greeting.dtd&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;greet&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:element name=&amp;quot;greeting&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:apply-templates select=&amp;quot;greeting&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:element&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;greeting&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:element name=&amp;quot;welcome&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;xml:lang&amp;quot;&amp;gt;&amp;lt;xsl:value-of&lt;br /&gt;
          select=&amp;quot;@xml:lang&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;&amp;lt;xsl:value-of&lt;br /&gt;
          select=&amp;quot;generate-id(.)&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:value-of select=&amp;quot;current()&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:element&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;!DOCTYPE greeting&lt;br /&gt;
  SYSTEM &amp;quot;greeting.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;greeting&amp;gt;&lt;br /&gt;
   &amp;lt;welcome xml:lang=&amp;quot;en&amp;quot; id=&amp;quot;d2e3&amp;quot;&amp;gt;Welcome&amp;lt;/welcome&amp;gt;&lt;br /&gt;
   &amp;lt;welcome xml:lang=&amp;quot;fr&amp;quot; id=&amp;quot;d2e6&amp;quot;&amp;gt;Bienvenue&amp;lt;/welcome&amp;gt;&lt;br /&gt;
   &amp;lt;welcome xml:lang=&amp;quot;es&amp;quot; id=&amp;quot;d2e9&amp;quot;&amp;gt;Bienvenido&amp;lt;/welcome&amp;gt;&lt;br /&gt;
   &amp;lt;welcome xml:lang=&amp;quot;de&amp;quot; id=&amp;quot;d2e12&amp;quot;&amp;gt;Willkommen&amp;lt;/welcome&amp;gt;&lt;br /&gt;
&amp;lt;/greeting&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== for-each select=/addressbook/address[generate-id(.)=generate-id(key(zipcodes, zip)[1])]==&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;Mr.&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;first-name&amp;gt;Doris&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;1234 Main Street&amp;lt;/street&amp;gt;&lt;br /&gt;
    &amp;lt;city&amp;gt;Sheboygan&amp;lt;/city&amp;gt;&lt;br /&gt;
    &amp;lt;state&amp;gt;WI&amp;lt;/state&amp;gt;&lt;br /&gt;
    &amp;lt;zip&amp;gt;48392&amp;lt;/zip&amp;gt;&lt;br /&gt;
  &amp;lt;/address&amp;gt;&lt;br /&gt;
&amp;lt;/addressbook&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;html&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:key name=&amp;quot;zipcodes&amp;quot; match=&amp;quot;address&amp;quot; use=&amp;quot;zip&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Customers grouped by Zip code&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/addressbook/address[generate-id(.)=generate-id(key(&amp;quot;zipcodes&amp;quot;, zip)[1])]&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:sort select=&amp;quot;zip&amp;quot;/&amp;gt; &lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;key(&amp;quot;zipcodes&amp;quot;, zip)&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:sort select=&amp;quot;name/first-name&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;tr&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:if test=&amp;quot;position() = 1&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;td rowspan=&amp;quot;{count(key(&amp;quot;zipcodes&amp;quot;, zip))}&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt;Zip code &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;span style=&amp;quot;font-size: 150%;&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;zip&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/span&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&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;/td&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;td&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;span&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;/span&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;street&amp;quot;/&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;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&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;html&amp;gt;&lt;br /&gt;
   &amp;lt;head&amp;gt;&lt;br /&gt;
      &amp;lt;meta http-equiv=&amp;quot;Content-Type&amp;quot; content=&amp;quot;text/html; charset=UTF-8&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;title&amp;gt;Customers grouped by Zip code&amp;lt;/title&amp;gt;&lt;br /&gt;
   &amp;lt;/head&amp;gt;&lt;br /&gt;
   &amp;lt;body&amp;gt;&lt;br /&gt;
      &amp;lt;table border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;tr&amp;gt;&lt;br /&gt;
            &amp;lt;td rowspan=&amp;quot;1&amp;quot;&amp;gt;Zip code &amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;font-size: 150%;&amp;quot;&amp;gt;48392&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;Sheboygan, WI&lt;br /&gt;
            &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;td&amp;gt;Doris &amp;lt;span&amp;gt;Smith&amp;lt;/span&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;td&amp;gt;1234 Main Street&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;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== generate-id() generates id conforming to XML spec==&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 name=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;BBB pos=&amp;quot;1&amp;quot; val=&amp;quot;bbb&amp;quot;&amp;gt;11111&amp;lt;/BBB&amp;gt;&lt;br /&gt;
      &amp;lt;BBB&amp;gt;22222&amp;lt;/BBB&amp;gt;&lt;br /&gt;
    &amp;lt;/AAA&amp;gt;&lt;br /&gt;
    &amp;lt;AAA name=&amp;quot;bottom&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;BBB&amp;gt;33333&amp;lt;/BBB&amp;gt;&lt;br /&gt;
      &amp;lt;BBB&amp;gt;44444&amp;lt;/BBB&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:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;DIV&amp;gt;&lt;br /&gt;
        &amp;lt;B&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:text&amp;gt;generate-id(//AAA)  : &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
        &amp;lt;/B&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;generate-id(//AAA)  &amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/DIV&amp;gt;&lt;br /&gt;
      &amp;lt;DIV&amp;gt;&lt;br /&gt;
        &amp;lt;B&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:text&amp;gt;generate-id(//BBB)  : &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
        &amp;lt;/B&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;generate-id(//BBB)  &amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/DIV&amp;gt;&lt;br /&gt;
      &amp;lt;DIV&amp;gt;&lt;br /&gt;
        &amp;lt;B&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:text&amp;gt;generate-id(//AAA[1])  : &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
        &amp;lt;/B&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;generate-id(//AAA[1])  &amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/DIV&amp;gt;&lt;br /&gt;
      &amp;lt;DIV&amp;gt;&lt;br /&gt;
        &amp;lt;B&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:text&amp;gt;generate-id(//*[1])  : &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
        &amp;lt;/B&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;generate-id(//*[1])  &amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/DIV&amp;gt;&lt;br /&gt;
      &amp;lt;DIV&amp;gt;&lt;br /&gt;
        &amp;lt;B&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:text&amp;gt;generate-id(//xslTutorial/*[1])  : &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
        &amp;lt;/B&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;generate-id(//xslTutorial/*[1])  &amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/DIV&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;DIV&amp;gt;&amp;lt;B&amp;gt;generate-id(//AAA)  : &amp;lt;/B&amp;gt;d2e3&amp;lt;/DIV&amp;gt;&amp;lt;DIV&amp;gt;&amp;lt;B&amp;gt;generate-id(//BBB)  : &amp;lt;/B&amp;gt;d2e5&amp;lt;/DIV&amp;gt;&amp;lt;DIV&amp;gt;&amp;lt;B&amp;gt;generate-id(//AAA[1])  : &amp;lt;/B&amp;gt;d2e3&amp;lt;/DIV&amp;gt;&amp;lt;DIV&amp;gt;&amp;lt;B&amp;gt;generate-id(//*[1])  : &amp;lt;/B&amp;gt;d2e1&amp;lt;/DIV&amp;gt;&amp;lt;DIV&amp;gt;&amp;lt;B&amp;gt;generate-id(//xslTutorial/*[1])  : &amp;lt;/B&amp;gt;&amp;lt;/DIV&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== uses generate-id() to add id to all elements in source XML.==&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 name=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;BBB pos=&amp;quot;1&amp;quot; val=&amp;quot;bbb&amp;quot;&amp;gt;11111&amp;lt;/BBB&amp;gt;&lt;br /&gt;
      &amp;lt;BBB&amp;gt;22222&amp;lt;/BBB&amp;gt;&lt;br /&gt;
    &amp;lt;/AAA&amp;gt;&lt;br /&gt;
    &amp;lt;AAA name=&amp;quot;bottom&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;BBB&amp;gt;33333&amp;lt;/BBB&amp;gt;&lt;br /&gt;
      &amp;lt;BBB&amp;gt;44444&amp;lt;/BBB&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:template match=&amp;quot;*&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:copy&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;generate-id()&amp;quot;/&amp;gt;&amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:for-each select=&amp;quot;@*&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:attribute name=&amp;quot;{name()}&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
        &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:apply-templates/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:copy&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;data id=&amp;quot;d2e1&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;AAA id=&amp;quot;d2e3&amp;quot; name=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;BBB id=&amp;quot;d2e5&amp;quot; pos=&amp;quot;1&amp;quot; val=&amp;quot;bbb&amp;quot;&amp;gt;11111&amp;lt;/BBB&amp;gt;&lt;br /&gt;
      &amp;lt;BBB id=&amp;quot;d2e8&amp;quot;&amp;gt;22222&amp;lt;/BBB&amp;gt;&lt;br /&gt;
    &amp;lt;/AAA&amp;gt;&lt;br /&gt;
    &amp;lt;AAA id=&amp;quot;d2e12&amp;quot; name=&amp;quot;bottom&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;BBB id=&amp;quot;d2e14&amp;quot;&amp;gt;33333&amp;lt;/BBB&amp;gt;&lt;br /&gt;
      &amp;lt;BBB id=&amp;quot;d2e17&amp;quot;&amp;gt;44444&amp;lt;/BBB&amp;gt;&lt;br /&gt;
    &amp;lt;/AAA&amp;gt;&lt;br /&gt;
&amp;lt;/data&amp;gt;&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
			</entry>

	</feed>