XML和Web數據管理XQuery課件_第1頁
XML和Web數據管理XQuery課件_第2頁
XML和Web數據管理XQuery課件_第3頁
XML和Web數據管理XQuery課件_第4頁
XML和Web數據管理XQuery課件_第5頁
已閱讀5頁,還剩27頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、XQueryXQuery什么是 XQuery什么是 XQuery XQuery 是用于 XML 數據查詢的語言 XQuery 對 XML 的作用類似 SQL 對數據庫的作用 XQuery 被構建在 XPath 表達式之上 XQuery 被所有主要的數據庫引擎支持(IBM、Oracle、Microsoft等等) XQuery 是 W3C 標準。 什么是 XQuery什么是 XQuery 什么是 XQueryXQuery 和 XML 查詢有關XQuery 是用來從 XML 文檔查找和提取元素及屬性的語言。 例如:從存儲在名為 cd_catalog.xml 的 XML 文檔中的 CD 集那里選取所有

2、價格低于 10 美元的 CD 紀錄。什么是 XQueryXQuery 和 XML 查詢有關什么是 XQueryXQuery 與 XPathXQuery 1.0 和 XPath 2.0 共享相同的數據模型,并支持相同的函數和運算符。XQuery - 應用XQuery 可被用來:提取信息以便在網絡服務中使用 生成摘要報告 把 XML 數據轉換為 XHTML 為獲得相關信息而搜索網絡文檔 什么是 XQueryXQuery 與 XPathXQuery 實例XQuery 實例 通過研究一個例子來學習一些基礎的 XQuery 語法。 如何從 “books.xml” 選取節點?函數XQuery 使用函數來提

3、取 XML 文檔中的數據。doc() 用于打開 books.xml 文件:doc(books.xml) XQuery 實例XQuery 實例 XQuery 實例路徑表達式XQuery 使用路徑表達式在 XML 文檔中通過元素進行導航。下面的路徑表達式用于在 books.xml 文件中選取所有的 title 元素:doc(books.xml)/bookstore/book/title (/bookstore 選取 bookstore 元素,/book 選取 bookstore 元素下的所有 book 元素,而 /title 選取每個 book 元素下的所有 title 元素)上面的 XQuery

4、 可提取以下數據:Everyday Italian Harry Potter XQuery Kick Start Learning XML XQuery 實例路徑表達式XQuery 實例謂語XQuery 使用謂語來限定從 XML 文檔所提取的數據。下面的謂語用于選取 bookstore 元素下的所有 book 元素,并且所選取的 book 元素下的 price 元素的值必須小于 30:doc(books.xml)/bookstore/bookprice30 上面的 XQuery 可提取到下面的數據: Harry Potter J K. Rowling 2019 29.99 XQuery 實例謂

5、語XQuery FLWOR 表達式XQuery FLWOR 表達式使用 FLWOR 從 “books.xml” 選取節點 請看下面這個路徑表達式:doc(books.xml)/bookstore/bookprice30/title 上面這個表達式可選取 bookstore 元素下的 book 元素下所有的 title 元素,并且其中的 price 元素的值必須大于 30。XQuery FLWOR 表達式XQuery FLWOR 表XQuery FLWOR 表達式下面這個 FLWOR 表達式所選取的數據和上面的路徑表達式是相同的:for $x in doc(books.xml)/bookstor

6、e/book where $x/price30 return $x/title 結果是:XQuery Kick Start Learning XML 通過 FLWOR,您可以對結果進行排序:for $x in doc(books.xml)/bookstore/book where $x/price30 order by $x/title return $x/title XQuery FLWOR 表達式下面這個 FLWOR 表達XQuery FLWOR 表達式FLWOR 是 For, Let, Where, Order by, Return 的只取首字母縮寫。for 語句把 bookstore

7、元素下的所有 book 元素提取到名為 $x 的變量中。where 語句選取了 price 元素值大于 30 的 book 元素。order by 語句定義了排序次序。將根據 title 元素進行排序。return 語句規定返回什么內容。在此返回的是 title 元素。上面的 XQuery 表達式的結果:Learning XML XQuery Kick Start XQuery FLWOR 表達式FLWOR 是 For, XQuery FLWOR + HTMLXQuery FLWOR + HTML 在一個 HTML 列表中提交結果 請看下面的 XQuery FLWOR 表達式:for $x i

8、n doc(books.xml)/bookstore/book/title order by $x return $x 上面的表達式會選取 bookstore 元素下的 book 元素下的所有 title 元素,并以字母順序返回 title 元素。XQuery FLWOR + HTMLXQuery FLWOXQuery FLWOR + HTML如果希望使用 HTML 列表列出我們的書店中所有的書目。我們向 FLWOR 表達式添加 和 標簽: for $x in doc(books.xml)/bookstore/book/title order by $x return $x 以上代碼的結果:

9、Everyday Italian Harry Potter Learning XML XQuery Kick Start XQuery FLWOR + HTML如果希望使用 HTMXQuery FLWOR + HTML如果希望去除 title 元素,而僅僅顯示 title 元素內的數據。 for $x in doc(books.xml)/bookstore/book/title order by $x return data($x) 結果將是一個 HTML 列表: Everyday Italian Harry Potter Learning XML XQuery Kick Start XQue

10、ry FLWOR + HTML如果希望去除 titXQuery 術語XQuery 術語節點 在 XQuery 中,有七種節點:元素、屬性、文本、命名空間、處理指令、注釋、以及文檔(根)節點。XML 文檔是被作為節點樹來對待的。樹的根被稱為文檔節點或者根節點。基本值(或稱原子值,Atomic value)基本值是無父或無子的節點。基本值的例子:J K. Rowling en 項目項目是基本值或者節點。XQuery 術語XQuery 術語XQuery 術語節點關系 父(Parent) 子(Children) 同胞(Sibling) 先輩(Ancestor) 后代(Descendant) XQuer

11、y 術語節點關系 XQuery 語法XQuery 語法XQuery 的基礎語法規則: XQuery 對大小寫敏感 XQuery 的元素、屬性以及變量必須是合法的 XML 名稱。 XQuery 字符串值可使用單引號或雙引號。 XQuery 變量由 “$” 并跟隨一個名稱來進行定義,舉例,$bookstore XQuery 注釋被 (: 和 :) 分割,舉例,(: XQuery 注釋 :) XQuery 語法XQuery 語法XQuery 語法XQuery 條件表達式If-Then-Else 可以在 XQuery 中使用。請看下面的例子:for $x in doc(books.xml)/books

12、tore/book return if ($x/category=CHILDREN) then data($x/title) else data($x/title) 請注意 If-Then-Else 的語法:if 表達式后的圓括號是必需的。else 也是必需的,不過僅僅寫 “else ()” 也是可以的。上面的例子的結果:Everyday Italian Harry Potter Learning XML XQuery Kick Start XQuery 語法XQuery 條件表達式XQuery 語法XQuery 比較 在 XQuery 中,有兩種方法來比較值。通用比較:=, !=, , ,

13、= 值的比較:eq、ne、lt、le、gt、ge 這兩種比較方法的差異如下:請看下面的 XQuery 表達式:$bookstore/book/q 10 如果 q 屬性的值大于 10,上面的表達式的返回值為 true。$bookstore/book/q gt 10 如果僅返回一個 q,且它的值大于 10,那么表達式返回 true。如果不止一個 q 被返回,則會發生錯誤。XQuery 語法XQuery 比較 XQuery 添加元素和屬性XQuery 添加元素和屬性 向結果添加元素和屬性 在結果中引用輸入文件中的元素和屬性:for $x in doc(books.xml)/bookstore/boo

14、k/title order by $x return $x 上面的 XQuery 表達式會在結果中引用 title 元素和 lang 屬性,就像這樣:Everyday Italian Harry Potter Learning XML XQuery Kick Start 以上 XQuery 表達式返回 title 元素的方式和它們在輸入文檔中被描述的方式的相同的。XQuery 添加元素和屬性XQuery 添加元素和屬性 XQuery 添加元素和屬性要向結果添加我們自己的元素和屬性!添加 HTML 元素和文本現在,我們要向結果添加 HTML 元素。我們會把結果放在一個 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 添加元素和屬性要向結果添加我們自己的元素和屬XQuery 添加元素和屬性上面的 XQuery 表達式可生成以下結果: Bookstore Everyday Italian. Category: COOKING Harry Potter. Category: CHILDREN Learning XML. Category: WEB XQuery Kick

16、 Start. Category: WEB XQuery 添加元素和屬性上面的 XQuery 表達式可XQuery 選擇和過濾XQuery 選擇和過濾 可以使用路徑表達式或 FLWOR 表達式來選則和過濾元素。請看下面的 FLWOR 表達式:for $x in doc(books.xml)/bookstore/book where $x/price30 order by $x/title return $x/title XQuery 選擇和過濾XQuery 選擇和過濾 XQuery 選擇和過濾for (可選) 向每個由 in 表達式返回的項目捆綁一個變量 let (可選)可完成變量分配 whe

17、re (可選) 設定一個條件 order by (可選) 設定結果的排列順序 return 規定在結果中返回的內容 XQuery 選擇和過濾for XQuery 選擇和過濾for 語句for 語句可將變量捆綁到由 in 表達式返回的每個項目。for 語句可產生迭代。在同一個 FLWOR 表達式中可存在多重 for 語句。如需在一個 for 語句中進行指定次數地循環,您可使用關鍵詞 to : for $x in (1 to 5) return $x 結果: 1 2 3 4 5 XQuery 選擇和過濾for 語句XQuery 選擇和過濾關鍵詞 at 可用于計算迭代:for $x at $i in

18、 doc(books.xml)/bookstore/book/title return $i. data($x) 結果:1. Everyday Italian 2. Harry Potter 3. XQuery Kick Start 4. Learning XML XQuery 選擇和過濾關鍵詞 at 可用于計算迭代:XQuery 選擇和過濾允許多個 in 表達式。請使用逗號來分割每一個 in 表達式:for $x in (10,20), $y in (100,200) return x=$x and y=$y 結果:x=10 and y=100 x=10 and y=200 x=20 and

19、 y=100 x=20 and y=200 XQuery 選擇和過濾允許多個 in 表達式。XQuery 選擇和過濾let 語句let 語句可完成變量分配,并可避免多次重復相同的表達式。let 語句不會導致迭代。let $x := (1 to 5) return $x 結果:1 2 3 4 5 where 語句where 語句用于為結果設定一個或多個條件。where $x/price30 and $x/price100 XQuery 選擇和過濾let 語句XQuery 選擇和過濾order by 語句order by 語句用于規定結果的排序次序。此處,我們要根據 category 和 titl

20、e 來對結果進行排序:for $x in doc(books.xml)/bookstore/book order by $x/category, $x/title return $x/title 結果:Harry Potter Everyday Italian Learning XML XQuery Kick Start XQuery 選擇和過濾order by 語句XQuery 選擇和過濾return 語句:return 語句規定要返回的內容。for $x in doc(books.xml)/bookstore/book return $x/title 結果:Everyday Italian Harry Potter XQuery Kick Start Learning XML XQuery 選擇和

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論