8 messages in com.x-query.talkRE: [xquery-talk] Rookie XQuery Quest...| From | Sent On | Attachments |
|---|---|---|
| John Craft | 26 Apr 2007 07:21 | |
| John Snelson | 26 Apr 2007 07:34 | |
| Michael Kay | 26 Apr 2007 07:52 | |
| John Craft | 26 Apr 2007 09:10 | |
| Michael Kay | 26 Apr 2007 09:52 | |
| Michael Kay | 27 Apr 2007 08:37 | |
| David Carlisle | 27 Apr 2007 08:55 | |
| Per Bothner | 27 Apr 2007 09:10 |
| Subject: | RE: [xquery-talk] Rookie XQuery Question: Nested For Loops![]() |
|---|---|
| From: | John Craft (jcr...@jonesmcclure.com) |
| Date: | 04/26/2007 09:10:33 AM |
| List: | com.x-query.talk |
John & Michael-
Thank you for your help. I think I understand a little better now (and the code works).
jc
-----Original Message----- From: Michael Kay [mailto:mi...@saxonica.com] Sent: Thursday, April 26, 2007 9:53 AM To: John Craft; ta...@x-query.com Subject: RE: [xquery-talk] Rookie XQuery Question: Nested For Loops
You need curly braces when you nest an expression inside literal text, where the literal text is setting the content of an element or attribute. Your curly braces here are an error because they aren't directly inside an element constructor.
Try the following (I've made a few other changes as well):
let $bk in doc("book.xml")/book return <html> <head> <title>Hello World</title> </head> <body> <h1>{$bk/title}</h1> { for $ch at $counter in $bk/chapter return ( <h2>Chapter {$counter}. {$ch/title}</h2>, $ch/section/title ) } </body> </html>
Yes, I agree: this is pretty confusing. The rules are basically:
* To write an expression inside an element constructor, use curlies * To write an expression inside another expression, don't use curlies * To write an element constructor inside an expression, don't use curlies * To write an element constructor inside another element constructur, curlies are optional.
Michael Kay http://www.saxonica.com/
-----Original Message----- From: talk...@x-query.com [mailto:talk...@x-query.com] On Behalf Of John Craft Sent: 26 April 2007 15:22 To: ta...@x-query.com Subject: [xquery-talk] Rookie XQuery Question: Nested For Loops
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
_______________________________________________ ta...@x-query.com http://x-query.com/mailman/listinfo/talk




