版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、XQueryXQuery什么是 XQuery什么是 XQuery XQuery 是用于 XML 數(shù)據(jù)查詢的語(yǔ)言 XQuery 對(duì) XML 的作用類似 SQL 對(duì)數(shù)據(jù)庫(kù)的作用 XQuery 被構(gòu)建在 XPath 表達(dá)式之上 XQuery 被所有主要的數(shù)據(jù)庫(kù)引擎支持(IBM、Oracle、Microsoft等等) XQuery 是 W3C 標(biāo)準(zhǔn)。 什么是 XQuery什么是 XQuery 什么是 XQueryXQuery 和 XML 查詢有關(guān)XQuery 是用來(lái)從 XML 文檔查找和提取元素及屬性的語(yǔ)言。 例如:從存儲(chǔ)在名為 cd_catalog.xml 的 XML 文檔中的 CD 集那里選取所有
2、價(jià)格低于 10 美元的 CD 紀(jì)錄。什么是 XQueryXQuery 和 XML 查詢有關(guān)什么是 XQueryXQuery 與 XPathXQuery 1.0 和 XPath 2.0 共享相同的數(shù)據(jù)模型,并支持相同的函數(shù)和運(yùn)算符。XQuery - 應(yīng)用XQuery 可被用來(lái):提取信息以便在網(wǎng)絡(luò)服務(wù)中使用 生成摘要報(bào)告 把 XML 數(shù)據(jù)轉(zhuǎn)換為 XHTML 為獲得相關(guān)信息而搜索網(wǎng)絡(luò)文檔 什么是 XQueryXQuery 與 XPathXQuery 實(shí)例XQuery 實(shí)例 通過(guò)研究一個(gè)例子來(lái)學(xué)習(xí)一些基礎(chǔ)的 XQuery 語(yǔ)法。 如何從 “books.xml” 選取節(jié)點(diǎn)?函數(shù)XQuery 使用函數(shù)來(lái)提
3、取 XML 文檔中的數(shù)據(jù)。doc() 用于打開 books.xml 文件:doc(books.xml) XQuery 實(shí)例XQuery 實(shí)例 XQuery 實(shí)例路徑表達(dá)式XQuery 使用路徑表達(dá)式在 XML 文檔中通過(guò)元素進(jìn)行導(dǎo)航。下面的路徑表達(dá)式用于在 books.xml 文件中選取所有的 title 元素:doc(books.xml)/bookstore/book/title (/bookstore 選取 bookstore 元素,/book 選取 bookstore 元素下的所有 book 元素,而 /title 選取每個(gè) book 元素下的所有 title 元素)上面的 XQuery
4、 可提取以下數(shù)據(jù):Everyday Italian Harry Potter XQuery Kick Start Learning XML XQuery 實(shí)例路徑表達(dá)式XQuery 實(shí)例謂語(yǔ)XQuery 使用謂語(yǔ)來(lái)限定從 XML 文檔所提取的數(shù)據(jù)。下面的謂語(yǔ)用于選取 bookstore 元素下的所有 book 元素,并且所選取的 book 元素下的 price 元素的值必須小于 30:doc(books.xml)/bookstore/bookprice30 上面的 XQuery 可提取到下面的數(shù)據(jù): Harry Potter J K. Rowling 2019 29.99 XQuery 實(shí)例謂
5、語(yǔ)XQuery FLWOR 表達(dá)式XQuery FLWOR 表達(dá)式使用 FLWOR 從 “books.xml” 選取節(jié)點(diǎn) 請(qǐng)看下面這個(gè)路徑表達(dá)式:doc(books.xml)/bookstore/bookprice30/title 上面這個(gè)表達(dá)式可選取 bookstore 元素下的 book 元素下所有的 title 元素,并且其中的 price 元素的值必須大于 30。XQuery FLWOR 表達(dá)式XQuery FLWOR 表XQuery FLWOR 表達(dá)式下面這個(gè) FLWOR 表達(dá)式所選取的數(shù)據(jù)和上面的路徑表達(dá)式是相同的:for $x in doc(books.xml)/bookstor
6、e/book where $x/price30 return $x/title 結(jié)果是:XQuery Kick Start Learning XML 通過(guò) FLWOR,您可以對(duì)結(jié)果進(jìn)行排序:for $x in doc(books.xml)/bookstore/book where $x/price30 order by $x/title return $x/title XQuery FLWOR 表達(dá)式下面這個(gè) FLWOR 表達(dá)XQuery FLWOR 表達(dá)式FLWOR 是 For, Let, Where, Order by, Return 的只取首字母縮寫。for 語(yǔ)句把 bookstore
7、元素下的所有 book 元素提取到名為 $x 的變量中。where 語(yǔ)句選取了 price 元素值大于 30 的 book 元素。order by 語(yǔ)句定義了排序次序。將根據(jù) title 元素進(jìn)行排序。return 語(yǔ)句規(guī)定返回什么內(nèi)容。在此返回的是 title 元素。上面的 XQuery 表達(dá)式的結(jié)果:Learning XML XQuery Kick Start XQuery FLWOR 表達(dá)式FLWOR 是 For, XQuery FLWOR + HTMLXQuery FLWOR + HTML 在一個(gè) HTML 列表中提交結(jié)果 請(qǐng)看下面的 XQuery FLWOR 表達(dá)式:for $x i
8、n doc(books.xml)/bookstore/book/title order by $x return $x 上面的表達(dá)式會(huì)選取 bookstore 元素下的 book 元素下的所有 title 元素,并以字母順序返回 title 元素。XQuery FLWOR + HTMLXQuery FLWOXQuery FLWOR + HTML如果希望使用 HTML 列表列出我們的書店中所有的書目。我們向 FLWOR 表達(dá)式添加 和 標(biāo)簽: for $x in doc(books.xml)/bookstore/book/title order by $x return $x 以上代碼的結(jié)果:
9、Everyday Italian Harry Potter Learning XML XQuery Kick Start XQuery FLWOR + HTML如果希望使用 HTMXQuery FLWOR + HTML如果希望去除 title 元素,而僅僅顯示 title 元素內(nèi)的數(shù)據(jù)。 for $x in doc(books.xml)/bookstore/book/title order by $x return data($x) 結(jié)果將是一個(gè) HTML 列表: Everyday Italian Harry Potter Learning XML XQuery Kick Start XQue
10、ry FLWOR + HTML如果希望去除 titXQuery 術(shù)語(yǔ)XQuery 術(shù)語(yǔ)節(jié)點(diǎn) 在 XQuery 中,有七種節(jié)點(diǎn):元素、屬性、文本、命名空間、處理指令、注釋、以及文檔(根)節(jié)點(diǎn)。XML 文檔是被作為節(jié)點(diǎn)樹來(lái)對(duì)待的。樹的根被稱為文檔節(jié)點(diǎn)或者根節(jié)點(diǎn)。基本值(或稱原子值,Atomic value)基本值是無(wú)父或無(wú)子的節(jié)點(diǎn)?;局档睦樱篔 K. Rowling en 項(xiàng)目項(xiàng)目是基本值或者節(jié)點(diǎn)。XQuery 術(shù)語(yǔ)XQuery 術(shù)語(yǔ)XQuery 術(shù)語(yǔ)節(jié)點(diǎn)關(guān)系 父(Parent) 子(Children) 同胞(Sibling) 先輩(Ancestor) 后代(Descendant) XQuer
11、y 術(shù)語(yǔ)節(jié)點(diǎn)關(guān)系 XQuery 語(yǔ)法XQuery 語(yǔ)法XQuery 的基礎(chǔ)語(yǔ)法規(guī)則: XQuery 對(duì)大小寫敏感 XQuery 的元素、屬性以及變量必須是合法的 XML 名稱。 XQuery 字符串值可使用單引號(hào)或雙引號(hào)。 XQuery 變量由 “$” 并跟隨一個(gè)名稱來(lái)進(jìn)行定義,舉例,$bookstore XQuery 注釋被 (: 和 :) 分割,舉例,(: XQuery 注釋 :) XQuery 語(yǔ)法XQuery 語(yǔ)法XQuery 語(yǔ)法XQuery 條件表達(dá)式If-Then-Else 可以在 XQuery 中使用。請(qǐng)看下面的例子:for $x in doc(books.xml)/books
12、tore/book return if ($x/category=CHILDREN) then data($x/title) else data($x/title) 請(qǐng)注意 If-Then-Else 的語(yǔ)法:if 表達(dá)式后的圓括號(hào)是必需的。else 也是必需的,不過(guò)僅僅寫 “else ()” 也是可以的。上面的例子的結(jié)果:Everyday Italian Harry Potter Learning XML XQuery Kick Start XQuery 語(yǔ)法XQuery 條件表達(dá)式XQuery 語(yǔ)法XQuery 比較 在 XQuery 中,有兩種方法來(lái)比較值。通用比較:=, !=, , ,
13、= 值的比較:eq、ne、lt、le、gt、ge 這兩種比較方法的差異如下:請(qǐng)看下面的 XQuery 表達(dá)式:$bookstore/book/q 10 如果 q 屬性的值大于 10,上面的表達(dá)式的返回值為 true。$bookstore/book/q gt 10 如果僅返回一個(gè) q,且它的值大于 10,那么表達(dá)式返回 true。如果不止一個(gè) q 被返回,則會(huì)發(fā)生錯(cuò)誤。XQuery 語(yǔ)法XQuery 比較 XQuery 添加元素和屬性XQuery 添加元素和屬性 向結(jié)果添加元素和屬性 在結(jié)果中引用輸入文件中的元素和屬性:for $x in doc(books.xml)/bookstore/boo
14、k/title order by $x return $x 上面的 XQuery 表達(dá)式會(huì)在結(jié)果中引用 title 元素和 lang 屬性,就像這樣:Everyday Italian Harry Potter Learning XML XQuery Kick Start 以上 XQuery 表達(dá)式返回 title 元素的方式和它們?cè)谳斎胛臋n中被描述的方式的相同的。XQuery 添加元素和屬性XQuery 添加元素和屬性 XQuery 添加元素和屬性要向結(jié)果添加我們自己的元素和屬性!添加 HTML 元素和文本現(xiàn)在,我們要向結(jié)果添加 HTML 元素。我們會(huì)把結(jié)果放在一個(gè) HTML 列表中: Boo
15、kstore for $x in doc(books.xml)/bookstore/book order by $x/title return data($x/title). Category: data($x/category) XQuery 添加元素和屬性要向結(jié)果添加我們自己的元素和屬XQuery 添加元素和屬性上面的 XQuery 表達(dá)式可生成以下結(jié)果: Bookstore Everyday Italian. Category: COOKING Harry Potter. Category: CHILDREN Learning XML. Category: WEB XQuery Kick
16、 Start. Category: WEB XQuery 添加元素和屬性上面的 XQuery 表達(dá)式可XQuery 選擇和過(guò)濾XQuery 選擇和過(guò)濾 可以使用路徑表達(dá)式或 FLWOR 表達(dá)式來(lái)選則和過(guò)濾元素。請(qǐng)看下面的 FLWOR 表達(dá)式:for $x in doc(books.xml)/bookstore/book where $x/price30 order by $x/title return $x/title XQuery 選擇和過(guò)濾XQuery 選擇和過(guò)濾 XQuery 選擇和過(guò)濾for (可選) 向每個(gè)由 in 表達(dá)式返回的項(xiàng)目捆綁一個(gè)變量 let (可選)可完成變量分配 whe
17、re (可選) 設(shè)定一個(gè)條件 order by (可選) 設(shè)定結(jié)果的排列順序 return 規(guī)定在結(jié)果中返回的內(nèi)容 XQuery 選擇和過(guò)濾for XQuery 選擇和過(guò)濾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 $x 結(jié)果: 1 2 3 4 5 XQuery 選擇和過(guò)濾for 語(yǔ)句XQuery 選擇和過(guò)濾關(guān)鍵詞 at 可用于計(jì)算迭代:for $x at $i in
18、 doc(books.xml)/bookstore/book/title return $i. data($x) 結(jié)果:1. Everyday Italian 2. Harry Potter 3. XQuery Kick Start 4. Learning XML XQuery 選擇和過(guò)濾關(guān)鍵詞 at 可用于計(jì)算迭代:XQuery 選擇和過(guò)濾允許多個(gè) in 表達(dá)式。請(qǐng)使用逗號(hào)來(lái)分割每一個(gè) in 表達(dá)式:for $x in (10,20), $y in (100,200) return x=$x and y=$y 結(jié)果:x=10 and y=100 x=10 and y=200 x=20 and
19、 y=100 x=20 and y=200 XQuery 選擇和過(guò)濾允許多個(gè) in 表達(dá)式。XQuery 選擇和過(guò)濾let 語(yǔ)句let 語(yǔ)句可完成變量分配,并可避免多次重復(fù)相同的表達(dá)式。let 語(yǔ)句不會(huì)導(dǎo)致迭代。let $x := (1 to 5) return $x 結(jié)果:1 2 3 4 5 where 語(yǔ)句where 語(yǔ)句用于為結(jié)果設(shè)定一個(gè)或多個(gè)條件。where $x/price30 and $x/price100 XQuery 選擇和過(guò)濾let 語(yǔ)句XQuery 選擇和過(guò)濾order by 語(yǔ)句order by 語(yǔ)句用于規(guī)定結(jié)果的排序次序。此處,我們要根據(jù) category 和 titl
20、e 來(lái)對(duì)結(jié)果進(jìn)行排序:for $x in doc(books.xml)/bookstore/book order by $x/category, $x/title return $x/title 結(jié)果:Harry Potter Everyday Italian Learning XML XQuery Kick Start XQuery 選擇和過(guò)濾order by 語(yǔ)句XQuery 選擇和過(guò)濾return 語(yǔ)句:return 語(yǔ)句規(guī)定要返回的內(nèi)容。for $x in doc(books.xml)/bookstore/book return $x/title 結(jié)果:Everyday Italian Harry Potter XQuery Kick Start Learning XML XQuery 選擇和
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年安徽國(guó)際商務(wù)職業(yè)學(xué)院高職單招職業(yè)技能測(cè)試近5年??及鎱⒖碱}庫(kù)含答案解析
- 2025年天津開發(fā)區(qū)職業(yè)技術(shù)學(xué)院高職單招職業(yè)技能測(cè)試近5年??及鎱⒖碱}庫(kù)含答案解析
- 二零二五年度大型商場(chǎng)租賃合同:包含能耗分?jǐn)倕f(xié)議4篇
- 2025年中國(guó)立體庫(kù)市場(chǎng)調(diào)查研究報(bào)告
- 2025年全球及中國(guó)人工智能合同管理軟件行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025-2030全球在線凈化器行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025年全球及中國(guó)工藝電加熱器行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025至2031年中國(guó)玻璃蓋頂陽(yáng)光房行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025-2030全球纜索式起重機(jī)行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025至2031年中國(guó)木質(zhì)手飾盒行業(yè)投資前景及策略咨詢研究報(bào)告
- 人教版高中數(shù)學(xué)必修二《第十章 概率》單元同步練習(xí)及答案
- 智慧校園信息化建設(shè)項(xiàng)目組織人員安排方案
- 浙教版七年級(jí)上冊(cè)數(shù)學(xué)第4章代數(shù)式單元測(cè)試卷(含答案)
- 一病一品成果護(hù)理匯報(bào)
- AQ-T 1009-2021礦山救護(hù)隊(duì)標(biāo)準(zhǔn)化考核規(guī)范
- 鹽酸??颂婺崤R床療效、不良反應(yīng)與藥代動(dòng)力學(xué)的相關(guān)性分析的開題報(bào)告
- 消防設(shè)施安全檢查表
- 組合結(jié)構(gòu)設(shè)計(jì)原理 第2版 課件 第6、7章 鋼-混凝土組合梁、鋼-混凝土組合剪力墻
- 建筑公司資質(zhì)常識(shí)培訓(xùn)課件
- GB/T 26316-2023市場(chǎng)、民意和社會(huì)調(diào)查(包括洞察與數(shù)據(jù)分析)術(shù)語(yǔ)和服務(wù)要求
- 春節(jié)值班安全教育培訓(xùn)
評(píng)論
0/150
提交評(píng)論