Re: [xsl] Context inside brackets

Subject: Re: [xsl] Context inside brackets
From: "Martin Honnen martin.honnen@xxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Thu, 21 May 2015 12:04:11 -0000
Jorge . chocolate.camera@xxxxxxxxx wrote:
Having a sequence stored in a variable, how do I reference the item in
that sequence whose position is the same as the position of the
current node with respect to its context, with XSLT 2?

This does return what I expect:

<xsl:variable name="POSITION" select="position()" as="xs:integer"/>
<xsl:sequence select="$FOO[$POSITION]"/>

but I somehow feel that there must be a way to call the `position()`
of the current node from inside those brackets without the meaning of
the function actually becoming the position of the variable itself
instead of the current node's. Is there?

I don't think so, I think you need the variable.


I am using Saxon-HE 9.2.1.2J on OS X 10.10.3 (14D136).

Using the latest Saxon 9.6 and XSLT 3.0 you could delegate the variable binding to XPath with e.g.


<xsl:sequence select="let $pos := position() return $FOO[$pos]"/>

Current Thread