At 2011-12-01 15:58 +0100, Geert Josten wrote:
Funny, I always thought the FLWOR was an XQuery only thing...

<xsl:stylesheet version="2.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
 xmlns:b="books">
 <xsl:output omit-xml-declaration="yes" indent="yes"/>
 <xsl:strip-space elements="*"/>

 <xsl:template match="/">
   <xsl:sequence select=
   "(for $m in max(for $n in distinct-values(/*/b:book/(b:author |
b:editor)
                                            /b:name/concat(b:fname, '|',
b:lname)),
                   $cnt in count(/*/b:book/(b:author | b:editor)
                                 /b:name[$n eq concat(b:fname, '|',
b:lname) ])

...

(Looks quite horrible to me, like someone couldn't decide between XQuery
and XSLT.. :-/)

Well, in 2.0 it isn't a full FLWOR expression ... no "let", no "where" (though this can often be done with a predicate) and no "order by". That is the difference between the XPath "for expression" and XQuery "FLWOR expression".

But I have found it useful to say things like:

   <xsl:value-of select="for $each in expr return expr2($each)"/>

or:

   <xsl:apply-templates
     select="for $this in expr1, $that in expr2 return expr3($this, $that)"/>

. . . . . . . .  Ken


--
Contact us for world-wide XML consulting and instructor-led training
Free 5-hour video lecture: XSLT/XPath 1.0 & 2.0 http://ude.my/t37DVX
Crane Softwrights Ltd.            http://www.CraneSoftwrights.com/q/
G. Ken Holman                   mailto:[email protected]
Google+ profile: https://plus.google.com/116832879756988317389/about
Legal business disclaimers:    http://www.CraneSoftwrights.com/legal

_______________________________________________
[email protected]
http://x-query.com/mailman/listinfo/talk

Reply via email to