current

current 関数を使用すると、 XSLT 命令でコンテキストノードを取得できます。

構文

current()

返値

現在のノードのみを含むノード集合。

解説

この関数は XSLT 固有の XPath への追加です。コア XPath 関数ライブラリーの一部ではありません。

一番外側の式(別の式内に現れない式)の場合、現在のノードは常にコンテキストノード(. または self 構文によって返されます)と同じです。次の 2 つは意味的に同等です。

xml
<xsl:value-of select="current()"/>
xml
<xsl:value-of select="."/>

内側の式(角括弧など)では、現在のノードは一番外側の式の場合と同じです。したがって、次の 3 つの式のすべてにおいてcurrent関数(式全体ではない)が同じノードを返します。さらに、後者の 2 つは意味的に同等です。

xml
<xsl:value-of select="current()"/>
xml
<xsl:value-of select="foo/bar[current() = X]"/>
xml
<xsl:variable name="current" select="current()"/>
<xsl:value-of select="foo/bar[$current = X]"/>

そして、次のコードは最も外側の式に . があるので、後者のコードと意味的に同じです。

xml
<xsl:variable name="current" select="."/>
<xsl:value-of select="foo/bar[$current = X]"/>

しかし、 . は常に最も狭い文脈に関係しています。したがって、

xml
<xsl:value-of select="foo/bar[. = X]"/>

.bar ノードを返します。これは現在のノードとは異なる場合があります。

仕様書

Gecko の対応

対応済み。