XML教學 | XML 和 XQuery
XSLT
是什麼?
XQuery
(XML
查詢)是一種查詢和函數式編程語言,用於查詢和轉換結構化和非結構化資料的集合,
通常採用XML
、文本和其他資料格式(JSON
、二進制等)的供應商特定擴展的形式。
該語言由W3C
的XML Query
工作組開發。該工作與XSL
工作組的XSLT
開發密切協調;
這兩個小組共同負責XPath
,它是XQuery
的一個子集。
註:圖片截取於w3schools - XML and XPath
XQuery
是查詢XML
資料的語言。- 用於
XML
的XQuery
就像用於資料庫的SQL
。 XQuery
建立在XPath
表達式之上。- 所有主要資料庫都支持
XQuery
。 XQuery
是W3C
推薦標準。
簡單來說:
1 | XML Query 項目的使命是提供靈活的查詢工具,從 World Wide Web(全球資訊網)上的真實和虛擬文件中提取資料, |
XQuery
和XPath
XQuery
是一種為XML
所設計,類似SQL
的程式語言,包含For
、Let
、Where
、Sortby
及Return
等表達式,
整數、浮點數、字串、日期、時間及XML相關的資料型態,也可設定序列,可說是Xpath
的延伸。
與Xpath
不同的是,XQuery
提供一系列的資料類型和控制結構的程式編輯環境,可從XML
文件與包含XML
的資料庫中,查詢或擷取資料。
而XPath
是一種可以尋找節點位置的路徑語言,如同硬碟資料夾的檔案路徑,使用一系列的字串,用以描述XML
文件中各種元素或節點的位置。
XQuery 1.0
和XPath 2.0
共享相同的資料模型並支持相同的函數和運算符。
簡單的範例
回想一下我們XML教學 | XML 和 XPath用來獲取書籍列表的以下XPath
表達式。
1 | /bookstore/book |
這裏給出了三個版本的XQuery
語句,它們實現了顯示價格值大於30
的書名。
1 |
|
- 版本一:
1
2
3for $x in /bookstore/book
where $x/price > 30
return $x/title - 版本二:
1
2
3
4for $x in /bookstore
for $y in $x/book
where $y/price > 30
return $y/title - 版本三:
1
2for $x in /bookstore/book[price > 30]
return $x/title
範例執行效果:
此處使用Pattern matching / XPath 3.1 / XQuery 3.1 / CSS 3 Selector Online Tester
結語
此章節「簡單」介紹了XQuery
,使用簡單範例其訪問與操作。
只是因為與XML
相關,所以介紹了XQuery
,後面會在另外開XQuery
的教學。
註:以上參考了
iThome - XQuery
Pattern matching / XPath 3.1 / XQuery 3.1 / CSS 3 Selector Online Tester
w3resource.com - XML and XQuery
億聚網- XQuery XPath
維基百科-XML
維基百科-XQuery
Family with 220 icons by inipagi