>> English << | Français | Deutsch | Magyar | 中文 | Polski ZVON > Tutorials > XSLT Tutorial
>> Page 65 << | Prev | Next | Contents | Element Index

The current function returns a node-set that has the current node as its only member. For an outermost expression (an expression not occurring within another expression), the current node is always the same as the context node. However, within square brackets the current node is usually different from the context node.

XSLT stylesheet 1

XML Source
<source>

<AAA name="first">
     <BBB name="first">11111</BBB>
     <BBB name="second">22222</BBB>
</AAA>
<AAA name="second">
     <BBB name="first">33333</BBB>
     <BBB name="second">44444</BBB>
</AAA>

</source>

Output
<TABLE border="1">
  <TR>
     <TH> . </TH>
     <TH>current()</TH>
  </TR>
  <TR>
     <TD>first</TD>
     <TD>first</TD>
  </TR>
  <TR>
     <TD>11111</TD>
     <TD>1111122222</TD>
  </TR>
  <TR>
     <TD>second</TD>
     <TD>second</TD>
  </TR>
  <TR>
     <TD>33333</TD>
     <TD/>
  </TR>
</TABLE>

HTML view
. current()
first first
11111 1111122222
second second
33333
XSLT stylesheet
<xsl:stylesheet version = '1.0'
     xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>

<xsl:template match="/">
     <TABLE border="1">
          <TR>
               <TH> . </TH>
               <TH>current()</TH>
          </TR>
          <xsl:apply-templates select="//AAA"/>
     </TABLE>
</xsl:template>

<xsl:template match="AAA">
     <TR>
          <TD>
               <xsl:value-of select="./@name"/>
          </TD>
          <TD>
               <xsl:value-of select="current()/@name"/>
          </TD>
     </TR>
     <TR>
          <TD>
               <xsl:apply-templates select="BBB[./@name='first']"/>
          </TD>
          <TD>
               <xsl:apply-templates select="BBB[current()/@name='first']"/>
          </TD>
     </TR>
</xsl:template>


</xsl:stylesheet>