The dot in your second expression picks up the context from $values. You
should use current():
<xsl:for-each select="1 to count($values)">
<xsl:sequence select="$values[current()]"/>
</xsl:for-each>
jk
On 2021-03-14 14:04, Michael Müller-Hillebrand mmh(_at_)docufy(_dot_)de wrote:
Folks,
Given a variable with a sequence of values
<xsl:variable name="values" select="(1,2,3,4,5)" as="xs:double+"/>
these are three methods to report its content:
<xsl:sequence select="for $i in 1 to count($values) return
$values[$i]"/>
<xsl:for-each select="1 to count($values)">
<xsl:sequence select="$values[.]"/>
</xsl:for-each>
<xsl:for-each select="1 to count($values)">
<xsl:sequence select="$values[current()]"/>
</xsl:for-each>
The first works as expected, the second does not, but the third
astonishingly enough gives me the same result as the first. Check it
out:
https://xsltfiddle.liberty-development.net/ei5R4v8/2
I read/understand that there is a difference between a for expression
and a path expression, but since we can use atomized values in
xsl:for-each, I would like to see more similarity between for and
for-each.
Should this be on the wishlist for XSLT 4 or do I have to
learn/understand some more concepts?
Puzzled greeting,
- Michael
--~----------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
EasyUnsubscribe: http://lists.mulberrytech.com/unsub/xsl-list/1167547
or by email: xsl-list-unsub(_at_)lists(_dot_)mulberrytech(_dot_)com
--~--