Re: [xsl] Confusion over /, //, current() and .

Subject: Re: [xsl] Confusion over /, //, current() and .
From: "Dennis Campillo" <dcampillo@xxxxxxx>
Date: Mon, 12 Nov 2001 15:03:19 -0700
I thought "current()" and "."
gave you the same thing.

This is pretty much the only information I can find regarding the current() function. It does show however that current() is not always the same as "."

(from the W3C XSLT spec)
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. Thus,

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

means the same as

<xsl:value-of select="."/>

However, within square brackets the current node is usually different from the context node. For example,

<xsl:apply-templates select="//glossary/item[@name=current()/@ref]"/>

will process all item elements that have a glossary parent element and that have a name attribute with value equal to the value of the current node's ref attribute. This is different from

<xsl:apply-templates select="//glossary/item[@name=./@ref]"/>

which means the same as

<xsl:apply-templates select="//glossary/item[@name=@ref]"/>

Get your FREE download of MSN Explorer at

XSL-List info and archive:

Current Thread