[xquery-talk] Rookie XQuery Question: Nested For Loops

John Snelson john.snelson at oracle.com
Thu Apr 26 16:34:39 PDT 2007


Hi John,

You don't need that set of curly braces, since you are already inside 
the outer curly braces. You do, however, need to add brackets and a 
comma operator in the inner return (the brackets get the precedence 
correct for the comma operator):

for $bk in doc("book.xml")/book
return
    <html>
    <head>
    <title>Hello World</title>
    </head>
    <body>
    <h1>{data($bk/title)}</h1>
    {
      for $ch in $bk/chapter
      return (
         <h2>Chapter {$counter}. {data($ch/title)}</h2>,
         for $sec in $ch/section
         return $sec/title
      )
    }
    </body>
    </html>

John

John Craft wrote:
> Greetings-
> 
> I am very new to XQuery and have a bit of a rookie question for you.  I
> am trying to nest for loops to output HTML but I am getting a syntax
> error on the curly brace before the third "for" statement.  Could
> someone please tell me what I am doing wrong?  I have posted sample code
> below:
> 
> for $bk in doc("book.xml")/book
> return
>    <html>
>    <head>
>    <title>Hello World</title>
>    </head>
>    <body>
>    <h1>{data($bk/title)}</h1>
>    {
>      for $ch in $bk/chapter
>      return
>         <h2>Chapter {$counter}. {data($ch/title)}</h2>
>             {
>                   for $sec in $ch/section
>                   return $sec/title
>             }
>    }
>    </body>
>    </html>
> 
> Thanks in advance,
> 
> John Craft
> 
> 
> 
> _______________________________________________
> talk at x-query.com
> http://x-query.com/mailman/listinfo/talk



More information about the talk mailing list