Marklogic學習 XQuery語法

2021-07-23 16:44:43 字數 3384 閱讀 2567

摘要:marklogic支援多種語言,xquery作為一種流行方式,在marklogic的官網中多有推薦,本節從xquery的flwor 語法入題,通過乙個個例項演示xquery的使用場景。

dept="鄂爾多斯">

100873number>

language="cn">連衣裙name>

公尺色colorchoices>

product>

dept="南極人">

6380number>

language="cn">毛呢外套name>

product>

dept="美夠">

4954number>

language="cn">半身裙name>

product>

dept="美夠">

2561number>

language="cn">百褶裙name>

product>

dept="果國際">

1697number>

language="cn">牛仔褲name>

藍色colorchoices>

我最喜歡a字裙i>

desc>

product>

catalog>

effdate="2016-10-13">

num="100873">

currency="rmb">299price>

type="clr">10.00discount>

prod>

num="6380">

currency="rmb">699price>

prod>

num="4954">

currency="rmb">99price>

type="clr">3.99discount>

prod>

pricelist>

prices>

num="1010598248"

date="2016-09-15">

dept="鄂爾多斯"

num="100873"

quantity="1"

color="公尺色"/>

dept="美夠"

num="4954"

quantity="1"/>

dept="美夠"

num="2561"

quantity="2"/>

dept="果國際"

num="1697"

quantity="1"

color="白色"/>

dept="果國際"

num="1697"

quantity="1"

color="藍色"/>

dept="南極人"

num="6380"

quantity="1"

color="黑色"/>

order>

for $prod

in fn:doc("catalog.xml")/catalog/product

let$name

:=$prod/name

where

$prod

/@dept =

"美夠"

order

by$prod/number

return

$name

得到的結果是兩個陣列形式的element

language="cn">百褶裙name>

language="cn">半身裙name>

for $prod

in doc("catalog.xml")/catalog/product

where

$prod

/@dept =

"美夠"

order

by$prod/number

return

$prod/name

在marklogic語法中,命名空間fn可以省略;使用let可以使**更清新,但有時可以偷懶簡化

for $x

in doc("catalog.xml")//product[@dept = "美夠"]

order

by$x/number

return

$x/name

有時候,能省則省,本來就是很簡單的事情,幹嘛搞的那麼複雜呢?

這樣,就在整個結果集外面多了一層標籤

language="cn">百褶裙name>

language="cn">半身裙name>

tr>

}>

這個結果形式像不像html中的table樣式

language="cn">百褶裙name>

td>

language="cn">半身裙name>

td>

tr>

}

可以使用fn:data函式,或者fn:string函式,或者類似這樣的表示式

百褶裙td>

半身裙td>

tr>

for

$item

in doc("order.xml")//item

let$name := doc("catalog.xml")//product[number = $item/@num]/name

return

"" name=""/>

將catalog資料與order資料結合,產生新的報表

num="100873"

name="連衣裙">

item>

num="4954"

name="半身裙">

item>

num="2561"

name="百褶裙">

item>

num="1697"

name="牛仔褲">

item>

num="1697"

name="牛仔褲">

item>

num="6380"

name="毛呢外套">

item>

items>

學習學習再學習

如果乙個技能足夠複雜 比如從零學程式設計 那就不要指望讀完一本書就可以打天下。多買幾本書同類的書 因為每個作者的出發點是不一樣的,哪怕對同乙個概念都有不同的解釋說明。理解知識的重要過程之一就如牛的反芻一樣,要嚼一遍 嚥下去 再吐出來 再嚼一遍 再嚥下去 所以,既然一本書可以讀幾遍,那麼同一話題多應該...

學習 學習 再學習

原本要使用vs2005開發乙個b s專案的,沒有想到只能先暫時停停了,居然跟不上技術的發展了,呵呵,一直使用delphi delphi也沒能跟上 沒有想到轉到vs2005上竟然有這麼多要學的東西,當然目的是了做乙個好的系統。最近一直在學習asp.net ajax,雖然專案停了,但是我覺得值得,有很多...

只是學習 學習 再學習

通過做 讓我學會了很多東西 什麼 flash div css html js as 雖然都只是皮毛 不過 算是了解那麼一點點吧 哈哈 我還突然發現 我的 數學和英語 進步了不少 而且還都是很實用的 比在學校的進步可快多了 那句話說的很不錯 在你了解了一些皮毛之後你會發現很多東西你都必須去學。因為少一...