XQuery Ñ¡ÔñºÍ¹ýÂË
XMLʵÀýÎĵµ
ÎÒÃǽ«ÔÚÏÂÃæµÄÀý×ÓÖмÌÐøÊ¹ÓÃÕâ¸ö "books.xml" Îĵµ£¨ºÍÉÏÃæµÄÕ½ÚËùʹÓÃµÄ XML ÎļþÏàͬ£©¡£
Ñ¡ÔñºÍ¹ýÂËÔªËØ
ÕýÈçÔÚÇ°ÃæµÄÕ½ÚËù¿´µ½µÄ£¬ÎÒÃÇʹÓ÷¾¶±í´ïʽ»ò FLWOR ±í´ïʽÀ´Ñ¡È¡ºÍ¹ýÂËÔªËØ¡£
Çë¿´ÏÂÃæµÄ FLWOR ±í´ïʽ£º
for $x in doc("books.xml")/bookstore/book where $x/price>30 order by $x/title return $x/title
- for
- £¨¿ÉÑ¡£© Ïòÿ¸öÓÉ in ±í´ïʽ·µ»ØµÄÏîÄ¿À¦°óÒ»¸ö±äÁ¿
- let
- £¨¿ÉÑ¡£©
- where
- £¨¿ÉÑ¡£© É趨һ¸öÌõ¼þ
- order by
- £¨¿ÉÑ¡£© É趨½á¹ûµÄÅÅÁÐ˳Ðò
- return
- ¹æ¶¨ÔÚ½á¹ûÖзµ»ØµÄÄÚÈÝ
for Óï¾ä
for Óï¾ä¿É½«±äÁ¿À¦°óµ½ÓÉ in ±í´ïʽ·µ»ØµÄÿ¸öÏîÄ¿¡£for Óï¾ä¿É²úÉúµü´ú¡£ÔÚͬһ¸ö FLWOR ±í´ïʽÖпɴæÔÚ¶àÖØ for Óï¾ä¡£
ÈçÐèÔÚÒ»¸ö for Óï¾äÖнøÐÐÖ¸¶¨´ÎÊýµØÑ»·£¬Äú¿ÉʹÓùؼü´Ê to £º
for $x in (1 to
5)
return <test>{$x}</test>
½á¹û£º
<test>1</test> <test>2</test> <test>3</test> <test>4</test> <test>5</test>
¹Ø¼ü´Ê at ¿ÉÓÃÓÚ¼ÆËãµü´ú£º
for $x at
$i in doc("books.xml")/bookstore/book/title
return <book>{$i}. {data($x)}</book>
½á¹û£º
<book>1. Everyday Italian</book> <book>2. Harry Potter</book> <book>3. XQuery Kick Start</book> <book>4. Learning XML</book>
ÔÚ for Óï¾äÖÐͬÑùÔÊÐí¶à¸ö in ±í´ïʽ¡£ÇëʹÓöººÅÀ´·Ö¸îÿһ¸ö in ±í´ïʽ£º
for $xin
(10,20), $yin
(100,200) return <test>x={$x} and y={$y}</test>
½á¹û£º
<test>x=10 and y=100</test> <test>x=10 and y=200</test> <test>x=20 and y=100</test> <test>x=20 and y=200</test>
let Óï¾ä
let Óï¾ä¿ÉÍê³É±äÁ¿·ÖÅ䣬²¢¿É±ÜÃâ¶à´ÎÖØ¸´ÏàͬµÄ±í´ïʽ¡£let Óï¾ä²»»áµ¼Öµü´ú¡£
let $x := (1 to 5) return <test>{$x}</test>
½á¹û£º
<test>1 2 3 4 5</test>
where Óï¾ä
where Óï¾äÓÃÓÚΪ½á¹ûÉ趨һ¸ö»ò¶à¸öÌõ¼þ£¨criteria£©¡£
where $x/price>30 and $x/price<100
order by Óï¾ä
order by Óï¾äÓÃÓڹ涨½á¹ûµÄÅÅÐò´ÎÐò¡£ÔÚÕâÀÎÒÃÇÒª¸ù¾Ý category ºÍ title À´¶Ô½á¹û½øÐÐÅÅÐò£º
for $x in doc("books.xml")/bookstore/book order by $x/@category, $x/title return $x/title
½á¹û£º
<title lang="en">Harry Potter</title> <title lang="en">Everyday Italian</title> <title lang="en">Learning XML</title> <title lang="en">XQuery Kick Start</title>
return Óï¾ä£º
return Óï¾ä¹æ¶¨Òª·µ»ØµÄÄÚÈÝ¡£
for $x in doc("books.xml")/bookstore/book return $x/title
½á¹û£º
<title lang="en">Everyday Italian</title> <title lang="en">Harry Potter</title> <title lang="en">XQuery Kick Start</title> <title lang="en">Learning XML</title>