[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: for vs. for-each

Subject: Re: for vs. for-each
From: "Michael Kay mike@xxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Sun, 14 Mar 2021 18:55:44 -0000
Re:  for vs. for-each
$values[.] obviously doesn't work because the value of the context item within
square brackets is different from the value outside.

The fact that the value of "." is context-dependent often causes difficulties
like this, but it's fundamental to the design of XPath..

The real culprit here is the overloading of A[B] to do both subscripting and
filtering. Changing the focus is necessary for filtering, but it gets in the
way for subscripting. I would argue that this is a design mistake (in fact, I
tried to argue this before XPath 1.0 was finalized) but it's impossible to
change it now. For 4.0, however, I would like to see better ways of accessing
items in a sequence by position, and there has been much discussion about how
best to achiieve this.

Michael Kay
Saxonica

> On 14 Mar 2021, at 18:04, Michael MC<ller-Hillebrand mmh@xxxxxxxxx
<xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> 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

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.