[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

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 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