Subject: Re: [xsl] for vs. for-each From: "G. Ken Holman g.ken.holman@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Sun, 14 Mar 2021 18:57:07 -0000 |
... the context when opening the predicate is $values and not the current item from the for-each.
... the context when opening the predicate begins at $values but current() jumps the context back to the beginning of the XPath expression, which is the current item from the for-each.
So it is readily explained. And it isn't a difference between for and for-each, it is that your predicate value either uses the context of the XPath node test (the ".") or ignores the context of the node test (the $i and current()).
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
-- Contact info, blog, articles, etc. http://www.CraneSoftwrights.com/s/ | Check our site for free XML, XSLT, XSL-FO and UBL developer resources | Streaming hands-on XSLT/XPath 2 training class @US$125 (5 hours free) | Essays (UBL, XML, etc.) http://www.linkedin.com/today/author/gkholman |
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] for vs. for-each, Dimitre Novatchev dn | Thread | Re: [xsl] for vs. for-each, G. Ken Holman g.ken. |
Re: [xsl] for vs. for-each, Michael Kay mike@xxx | Date | Re: [xsl] for vs. for-each, G. Ken Holman g.ken. |
Month |