XQuery Ñ¡ÔñºÍ¹ýÂË

XMLʵÀýÎĵµ

ÎÒÃǽ«ÔÚÏÂÃæµÄÀý×ÓÖмÌÐøÊ¹ÓÃÕâ¸ö "books.xml" Îĵµ£¨ºÍÉÏÃæµÄÕ½ÚËùʹÓÃµÄ XML ÎļþÏàͬ£©¡£

ÔÚÄúµÄä¯ÀÀÆ÷Öв鿴 "books.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 $x in (10,20), $y in (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>
VUE