1. XQuery 基础
1.1 查询文档
XQuery用于从XML文档中检索数据。例如,以下是一个简单的查询,用于选择所有 <book> 元素的标题:
for $book in doc("books.xml")//book
return $book/title
1.2 过滤和条件
使用 where 子句可以添加过滤条件。例如,以下查询选择价格大于 30 的所有书籍:
for $book in doc("books.xml")//book
where $book/price > 30
return $book/title
1.3 排序
使用 order by 子句对结果进行排序:
for $book in doc("books.xml")//book
order by $book/title
return $book/title
1.4 返回子集
使用 subsequence 函数返回结果的子集:
for $book in doc("books.xml")//book
return subsequence($book/title, 1, 5)
2. XQuery 函数
2.1 字符串函数
XQuery包含一系列用于处理字符串的内置函数,如 substring(), concat(), 和 string-length()。
2.2 数值函数
处理数值的函数,如 sum(), avg(), 和 round()。
2.3 时间和日期函数
XQuery支持处理时间和日期的函数,如 current-date(), current-time(), 和 xs:dateTime()。
3. XQuery 构造
3.1 构造元素
XQuery允许你创建新的XML元素。例如,以下查询创建一个新的 <result> 元素:
element result { "Hello, World!" }
3.2 构造属性
你还可以创建新的XML属性。例如,以下查询为元素添加一个 status 属性:
element book { attribute status {"available"}, "Title" }
4. XQuery 模块
4.1 模块化查询
将XQuery代码组织为模块,以便在不同查询之间共享和重用代码。
5. XQuery 更新
5.1 插入和删除
XQuery也支持对XML文档进行插入和删除操作。例如,以下查询插入一个新的 <book> 元素:
insert node <book>Title</book> into doc("books.xml")//library
5.2 替换
用新元素替换现有元素:
replace value of node doc("books.xml")//book[title="Old Title"]/title with "New Title"
6. XQuery 示例
6.1 综合示例
for $book in doc("books.xml")//book
where $book/price > 30
order by $book/title
return <book>{ $book/title }</book>
这个查询选择价格大于 30 的书籍,并按标题排序,然后返回包含标题的新 <book> 元素。
7. XQuery 数据库集成
7.1 数据库查询
许多数据库系统集成了XQuery,允许你在数据库中运行XQuery查询。
这只是一个简单的XQuery入门教程,XQuery的功能非常丰富,包括更复杂的查询、处理命名空间、使用外部函数等。深入学习XQuery的最好方法是通过阅读官方规范和进行实际的实践。
转载请注明出处:http://www.pingtaimeng.com/article/detail/12257/XML