Compare id : id « XSLT stylesheet « XML Tutorial






File: Data.xml
<?xml version="1.0" encoding="US-ASCII"?>
<?xml-stylesheet href="Transform.xslt" type="text/xsl"?>
<uscities>
 <western>
  <uscity state="Nevada">Las Vegas</uscity>
  <uscity state="Arizona">Phoenix</uscity>
  <uscity state="California">San Francisco</uscity>
  <uscity state="Nevada">Silver City</uscity>
  <uscity state="Washington">Seattle</uscity>
  <uscity state="Montana">Missoula</uscity>
 </western>
</uscities>

File: Transform.xslt

<?xml version="1.0" encoding="US-ASCII"?>
<xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="html" />
  <xsl:key name="list" match="uscity" use="@state" />

  <xsl:template match="/">
    <html>
      <head>
        <title>Western State Cities</title>
      </head>
      <body>
        <xsl:for-each
          select="/uscities/western/uscity[generate-id(.)=generate-id(key('list', @state))]/@state">
          <xsl:sort />
          <h2>
            <xsl:value-of select="." />
          </h2>
          <ul>
            <xsl:for-each select="key('list', .)">
              <xsl:sort />
              <li>
                <xsl:value-of select="." />
              </li>
            </xsl:for-each>
          </ul>
        </xsl:for-each>
      </body>
    </html>
  </xsl:template>

</xsl:stylesheet>

Output:

<html>
   <head>
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <title>Western State Cities</title>
   </head><body>
      <h2>Arizona</h2>
      <ul>
         <li>Phoenix</li>
      </ul>
      <h2>California</h2>
      <ul>
         <li>San Francisco</li>
      </ul>
      <h2>Montana</h2>
      <ul>
         <li>Missoula</li>
      </ul>
      <h2>Nevada</h2>
      <ul>
         <li>Las Vegas</li>
         <li>Silver City</li>
      </ul>
      <h2>Washington</h2>
      <ul>
         <li>Seattle</li>
      </ul>
   </body>
</html>








5.55.id
5.55.1.id() takes a string as its argument and returns a node-set containing any node that has an attribute of type ID equal to the function's argument
5.55.2.Compare id
5.55.3.select by id()
5.55.4.Here is a test of the id()
5.55.5.The id function selects elements by their unique ID.