match key : key « XSLT stylesheet « XML






match key


File: Data.xml
<?xml version="1.0" encoding="iso-8859-1"?>

<itinerary>
  <day number="1">day 1</day>
  <day number="2">day 2</day>
  <day number="3">day 3</day>
  <day number="4">day 4</day>
  <day number="5">day 5</day>
  <day number="6">day 6</day>
  <day number="7">day 7</day>
  <day number="8">day 8</day>
  <day number="9">day 9</day>
</itinerary>

File: Transform.xslt


<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="2.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:xs="http://www.w3.org/2001/XMLSchema">

  <xsl:import href="itinerary.xsl" />

  <xsl:param name="highlight-day" as="xs:integer" required="yes" />

  <xsl:key name="day-number" match="day" use="xs:integer(@number)" />

  <xsl:template match="key('day-number', $highlight-day)//text()">
    <font color="red">
      <xsl:value-of select="." />
    </font>
  </xsl:template>

</xsl:stylesheet>



File: itinerary.xsl

<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

  <xsl:template match="/">
    <html>
      <head>
        <title>Itinerary</title>
      </head>
      <body>
        <center>
          <xsl:apply-templates select="//day" />
        </center>
      </body>
    </html>
  </xsl:template>

  <xsl:template match="day">
    <h3>
      Day
      <xsl:value-of select="@number" />
    </h3>
    <p>
      <xsl:apply-templates />
    </p>
  </xsl:template>
</xsl:stylesheet>

 








Related examples in the same category

1.define and use key
2.key function with different parameters
3.Use variable in key function