
XQuery - 首個應用程式
示例
以下是一個包含多個書籍記錄的書店示例 XML 文件。
books.xml
<?xml version="1.0" encoding="UTF-8"?> <books> <book category="JAVA"> <title lang="en">Learn Java in 24 Hours</title> <author>Robert</author> <year>2005</year> <price>30.00</price> </book> <book category="DOTNET"> <title lang="en">Learn .Net in 24 hours</title> <author>Peter</author> <year>2011</year> <price>70.50</price> </book> <book category="XML"> <title lang="en">Learn XQuery in 24 hours</title> <author>Robert</author> <author>Peter</author> <year>2013</year> <price>50.00</price> </book> <book category="XML"> <title lang="en">Learn XPath in 24 hours</title> <author>Jay Ban</author> <year>2010</year> <price>16.50</price> </book> </books>
以下是一個示例 Xquery 文件,其中包含要對上述 XML 文件執行的查詢表示式。目的是獲取價格大於 30 的那些 XML 節點的 title 元素。
books.xqy
for $x in doc("books.xml")/books/book where $x/price>30 return $x/title
結果
<title lang="en">Learn .Net in 24 hours</title> <title lang="en">Learn XQuery in 24 hours</title>
驗證結果
要驗證結果,請使用上述 XQuery 表示式替換 環境設定一章中提供的 books.xqy(內容),然後執行 XQueryTester Java 程式。
XQuery 表示式
讓我們理解上述 XQuery 表示式的每個部分。
函式使用
doc("books.xml")
doc() 是 XQuery 函式之一,用於定位 XML 源。我們在這裡傳入 "books.xml"。考慮到相對路徑,books.xml 應位於 books.xqy 所在的相同路徑中。
XPath 表示式使用
doc("books.xml")/books/book
XQuery 大量使用 XPath 表示式,以便定位要對其進行搜尋的 XML 的所需部分。我們在這裡選擇了 books 節點下可用的所有 book 節點。
遍歷物件
for $x in doc("books.xml")/books/book
XQuery 將 XML 資料視為物件。在上述示例中,$x 表示選定的節點,而 for 迴圈則遍歷節點集合。
應用條件
where $x/price>30
由於 $x 表示選定的節點,所以 "/" 用於獲取所需元素的值;"where" 子句用於對搜尋結果進行條件設定。
返回結果
return $x/title
由於 $x 表示選定的節點,所以 "/" 用於獲取所需元素的值,即 price、title;"return" 子句用於從搜尋結果中返回元素。
廣告