欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

XQuery 選擇和過(guò)濾

XML實(shí)例文檔

我們將在下面的例子中繼續(xù)使用這個(gè) "books.xml" 文檔(和上面的章節(jié)所使用的 XML 文件相同)。

在您的瀏覽器中查看 "books.xml" 文件。

選擇和過(guò)濾元素

正如在前面的章節(jié)所看到的,我們使用路徑表達(dá)式或 FLWOR 表達(dá)式來(lái)選取和過(guò)濾元素。

請(qǐng)看下面的 FLWOR 表達(dá)式:

for $x in doc("books.xml")/bookstore/book
where $x/price>30
order by $x/title
return $x/title
for
(可選) 向每個(gè)由 in 表達(dá)式返回的項(xiàng)目捆綁一個(gè)變量
let
(可選)
where
(可選) 設(shè)定一個(gè)條件
order by
(可選) 設(shè)定結(jié)果的排列順序
return
規(guī)定在結(jié)果中返回的內(nèi)容

for 語(yǔ)句

for 語(yǔ)句可將變量捆綁到由 in 表達(dá)式返回的每個(gè)項(xiàng)目。for 語(yǔ)句可產(chǎn)生迭代。在同一個(gè) FLWOR 表達(dá)式中可存在多重 for 語(yǔ)句。

如需在一個(gè) for 語(yǔ)句中進(jìn)行指定次數(shù)地循環(huán),您可使用關(guān)鍵詞 to

for $x in (1 to 5)
return <test>{$x}</test>

結(jié)果:

<test>1</test>
<test>2</test>
<test>3</test>
<test>4</test>
<test>5</test>

關(guān)鍵詞 at 可用于計(jì)算迭代:

for $x at $i in doc("books.xml")/bookstore/book/title
return <book>{$i}. {data($x)}</book>

結(jié)果:

<book>1. Everyday Italian</book>
<book>2. Harry Potter</book>
<book>3. XQuery Kick Start</book>
<book>4. Learning XML</book>

在 for 語(yǔ)句中同樣允許多個(gè) in 表達(dá)式。請(qǐng)使用逗號(hào)來(lái)分割每一個(gè) in 表達(dá)式:

for $x in (10,20), $y in (100,200)
return <test>x={$x} and y={$y}</test>

結(jié)果:

<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 語(yǔ)句

let 語(yǔ)句可完成變量分配,并可避免多次重復(fù)相同的表達(dá)式。let 語(yǔ)句不會(huì)導(dǎo)致迭代。

let $x := (1 to 5)
return <test>{$x}</test>

結(jié)果:

<test>1 2 3 4 5</test>

where 語(yǔ)句

where 語(yǔ)句用于為結(jié)果設(shè)定一個(gè)或多個(gè)條件(criteria)。

where $x/price>30 and $x/price<100

order by 語(yǔ)句

order by 語(yǔ)句用于規(guī)定結(jié)果的排序次序。在這里,我們要根據(jù) category 和 title 來(lái)對(duì)結(jié)果進(jìn)行排序:

for $x in doc("books.xml")/bookstore/book
order by $x/@category, $x/title
return $x/title

結(jié)果:

<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 語(yǔ)句:

return 語(yǔ)句規(guī)定要返回的內(nèi)容。

for $x in doc("books.xml")/bookstore/book
return $x/title

結(jié)果:

<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>