XQuery 简介学习笔记

什么是 XQuery?

XQuery 是一种用于 XML 数据的查询语言。它类似于 SQL,但是更加强大和灵活,能够处理包含在 XML 中的任何数据。XQuery 可以查询和操作 XML 文档及其内容,可以用于从数据库、Web 上的网页或其他来源检索数据。

XQuery 的基本语法

XQuery 主要由表达式构成,它们包括值、变量、函数和运算符等元素。这些表达式用于查询 XML 数据并对其进行处理:

查询元素

使用 element 关键字查询指定的 XML 元素。例如:

XQueryCopy Code
element book { element title { "The Catcher in the Rye" }, element author { "J.D. Salinger" } }

这个 XQuery 表达式将返回一个 XML 文档,其中包含 book 元素、title 元素和 author 元素,分别包含书名和作者。

运算符

XQuery 支持各种运算符,包括数学运算符、逻辑运算符和比较运算符等。

例如,以下表达式将比较两个数值:

XQueryCopy Code
2 + 2 = 4

函数

XQuery 还提供了许多有用的内置函数,例如:

  • fn:contains:检查一个字符串是否包含指定的子串;
  • fn:matches:检查一个字符串是否匹配一个正则表达式;
  • fn:string-length:返回一个字符串的长度。

XQuery 的实例

查询 XML 文档

以下是一个简单的 XML 文档:

XMLCopy Code
<books> <book> <title>The Catcher in the Rye</title> <author>J.D. Salinger</author> <year>1951</year> </book> <book> <title>To Kill a Mockingbird</title> <author>Harper Lee</author> <year>1960</year> </book> <book> <title>1984</title> <author>George Orwell</author> <year>1949</year> </book> </books>

假设我们想查询这个文档中所有书的标题和年份,可以使用以下 XQuery 表达式:

XQueryCopy Code
for $book in /books/book return element book { element title { $book/title/text() }, element year { $book/year/text() } }

运行以上 XQuery 表达式将返回以下结果:

XMLCopy Code
<book> <title>The Catcher in the Rye</title> <year>1951</year> </book> <book> <title>To Kill a Mockingbird</title> <year>1960</year> </book> <book> <title>1984</title> <year>1949</year> </book>

修改 XML 文档

XQuery 还可以用于修改 XML 文档。例如,如果我们想将上述文档中的所有书籍名称修改为大写,可以使用以下 XQuery 表达式:

XQueryCopy Code
for $book in /books/book return element book { element title { upper-case($book/title/text()) }, element author { $book/author/text() }, element year { $book/year/text() } }

运行以上 XQuery 表达式后,文档中的所有书名将变为大写。