Previous | Next | Indexes
Zvon > Tutorials > XSLT 2.0 Tutorial > Keys (4/12) >

key() as the first step of an XPath expression

key() function returns a sequence of nodes which can be further queried using standard XPath expressions.

XSLT

      <xsl:stylesheet
                  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                  version="2.0">
            <xsl:output  method="xml"
                        indent="yes"
                        omit-xml-declaration="yes"/>
            <xsl:key  name="kkk"
                        match="bbb"
                        use="@id"/>

            <xsl:template  match="/aaa">
                  <xsl:apply-templates  select="key('kkk','b')/ccc/ddd"/>
            </xsl:template>

            <xsl:template  match="ddd">
                  <xsl:copy-of  select="."/>
            </xsl:template>

      </xsl:stylesheet>
XML

      <aaa>
            <bbb  id="a">
                  <ccc>
                        <ddd>1</ddd>
                  </ccc>
            </bbb>
            <fff>
                  <bbb  id="b">
                        <ccc>
                              <ddd>2</ddd>
                              <ddd>3</ddd>
                        </ccc>
                  </bbb>
            </fff>
      </aaa>
Output

      <ddd>2</ddd>
      <ddd>3</ddd>


Previous chapter: Namespaces
Next chapter: Recursions
Previous page: Keys usage for cross-referencing
Next page: Key element contents instead of use attribute