XSLT Context (Dot) Overview
The current context node changes
as an <xsl:apply-templates> instruction
traverses the document hierarchy and as an <xsl:for-each> instruction examines each node that matches an XPath expression. All relative node references are relative to the current
context node. This node is abbreviated “ .” (read: dot) and can be referred to in XPath expressions,
allowing explicit references to the current node.
The following example contains four uses for “.” . The system node
is saved in the system variable for use
inside the <xsl:for-each> instruction,
where the value of “.” will
have changed. The for-each select expression uses “.” to mean the value of the name element.
The “.” is then used to pull
the value of the name element into the <tag> element. The <xsl:if> test then uses “.” to reference
the value of the current context node.
<xsl:template match="system"> <xsl:variable name="system" select="."/> <xsl:for-each select="name-server/name[starts-with(., '10.')]"> <tag><xsl:value-of select="."/></tag> <xsl:if test=". = '10.1.1.1'"> <match> <xsl:value-of select="$system/host-name"/> </match> </xsl:if> </xsl:for-each> </xsl:template>