English | Français | Deutsch | Magyar | >> 中文 << | Polski ZVON > Tutorials > XSLT Tutorial
>> 页 65 << | 上一条 | 下一条 | 目录 | 元素索引

current 函数返回一个节点集,集合的唯一成员就是当前节点。对于最外面的表达式(指一个不属于其它表达式的表达式),当前节点一定就是上下文节点。当然,在方括号内当前节点一般和上下文节点就不同了。

XSLT stylesheet 1

XML源码
<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>

输出
<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察看
. 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>