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

Re: [xsl] In the xquery, how do i access the counter in for-each?


Subject: Re: [xsl] In the xquery, how do i access the counter in for-each?
From: Brandon Ibach <brandon.ibach@xxxxxxxxxxxxxxxxxxx>
Date: Sun, 19 Jun 2011 02:35:59 -0400

You could use the "positional variable" feature of the "for"
construct, but you'd get results other than what you want because the
"position" is assigned before any filtering by the "where" clause and
reordering by the "order by" clause.

However, you could use this feature with a nested "for":

for $y at $i in
  (for $x in doc("books.xml")/bookstore/book
   where $x/price>30 order by $x/title return $x/title)
return concat($i, ": ", $y)

-Brandon :)


On Sun, Jun 19, 2011 at 12:50 AM, sudheshna iyer
<sudheshnaiyer@xxxxxxxxx> wrote:
> Eg:
> for $x in doc("books.xml")/bookstore/book
> where $x/price>30  => want the loop counter.
> order by $x/title
> return $x/title
>
> If "doc("books.xml")/bookstore/book"  returns 3 elements(book1, book2,
book3),
> and during the looping, I want to get loop counter value.
>
> For the first element, I want to prepare string using loop counter like
> "elem-1", and for the second, I want "elem-2"
>
>
> Thank you for your help.


Current Thread