xpath.location — Calculate the XPath child-sequence to the current node
The xpath.location
template calculates the
absolute path from the root of the tree to the current element node.
<xsl:template name="xpath.location"> <xsl:param name="node" select="."></xsl:param> <xsl:param name="path" select="''"></xsl:param> <xsl:variable name="next.path"> <xsl:value-of select="local-name($node)"></xsl:value-of> <xsl:if test="$path != ''">/</xsl:if> <xsl:value-of select="$path"></xsl:value-of> </xsl:variable> <xsl:choose> <xsl:when test="$node/parent::*"> <xsl:call-template name="xpath.location"> <xsl:with-param name="node" select="$node/parent::*"></xsl:with-param> <xsl:with-param name="path" select="$next.path"></xsl:with-param> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:text>/</xsl:text> <xsl:value-of select="$next.path"></xsl:value-of> </xsl:otherwise> </xsl:choose> </xsl:template>