- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
条件运算式和XQuery函数所组成
for clause – basic for clause (1/6) 基本for子句是以迴圈方式一一取出循序的項目,通常我們是使用路徑運算式來取出循序。例如:取出bookstore.xml文件的所有price元素節點,如下所示: for $price in doc(bookstore.xml) //book/price return $price 運算式在in指令後是路徑運算式,取得所有price元素節點的循序,在in指令前是變數$price,指定成每執行一次迴圈所取得的項目,return子句可以傳回變數內容,也就是每一個price元素。 for clause – counting expression (2/6) 在for子句可以加上 at 指令的計數變數,以便計算迴圈總共執行幾次。例如:在bookstore.xml文件取得所有book元素節點,並且傳回每一個節點的計數,如下所示: for $book at $i in doc(bookstore.xml) //book return (num{$i}/num, $book/title) 運算式每執行一次,變數$i就加1,return子句傳回的num元素就是變數$i的值。 for clause – range expression (3/6) FLWOR運算式的for子句可以如同程式語言的迴圈敘述建立範圍運算式。例如:執行1~3範圍的for子句,如下所示: for $i in (1 to 3) return count{$i}/count 運算式在in指令後的是自定循序,即1~3,換句話說,變數$i的值就是1~3,所以return子句傳回的就是3個count元素,其值也是1~3。 for clause – multiple for (4/6) FLWOR運算式允許同時使用多個for子句,每個子句使用「,」符號分隔,例如:兩個for子句的範圍運算式,如下所示: for $x in (1, 2), $y in (5, 6) return evalx={$x} y={$y}/eval 運算式一共有2個範圍運算式,類似巢狀迴圈,可以建立4個eval元素。 for clause – Results in HTML list(5/6) ul{for $x in doc(books.xml)/bookstore/book/titleorder by $xreturn li{$x}/li}/ul Output: ullititle lang=enEveryday Italian/title/lilititle lang=enHarry Potter/title/lilititle lang=enLearning XML/title/lilititle lang=enXQuery Kick Start/title/li/ul for clause – Results in HTML list(6/6) ul{for $x in doc(books.xml)/bookstore/book/titleorder by $xreturn li{data($x)}/li}/ul Output: ulliEveryday Italian/liliHarry Potter/liliLearning XML/liliXQuery Kick Start/li/ul where clause – single condition (1/2) 單一條件的where子句只有一個條件運算式,例如:過濾price元素值需要大於600,如下所示: for $price in doc(bookstore.xml) //book/price where $price 600 return $price where子句只有當$price 600值為true時,才會輸出return子句的元素。 where clause – multiple conditions (2/2) 在where子句可以使用and和or運算式建立包含多個子條件的運算式,如下所示: for $book at $i in doc(bookstore.xml“)//book where starts-with($book/title, P) and $book/price = 600 return (num{$i}/num, $book/title) where子句使用and連接兩個條件運算式,第1個是XQuery函數starts-with()檢查書名是否是P開頭,第2個運算式過濾price元素大於等於600。 order by clause 在FL
文档评论(0)