XQuery 选择和过滤学习笔记
1. XQuery 简介
XQuery 是一种基于 XML 的查询语言,用于从 XML 文档中提取数据。它包括一些强大的过滤和选择功能,使得从大量的 XML 数据中提取所需信息变得非常容易。
2. XQuery 选择
在 XQuery 中,使用 XPath 表达式进行选择。XPath 表达式是一种用于定位 XML 文档中特定部分的语法。以下是一些常见的 XPath 选择器:
/
:匹配文档根节点。//
:匹配任意节点。*
:匹配任何元素节点。@
:匹配任何属性节点。
例如,在以下 XML 文档中:
Copy Code<books>
<book id="1">
<title>XQuery Basics</title>
<author>John Doe</author>
</book>
<book id="2">
<title>XML Parsing in Java</title>
<author>Jane Smith</author>
</book>
</books>
要选择所有书籍的标题,可以使用以下 XPath 表达式:
Copy Code/books/book/title
此表达式将返回:
Copy CodeXQuery Basics
XML Parsing in Java
3. XQuery 过滤
使用 XQuery,可以通过指定条件来过滤文档中的元素。以下是一些常见的过滤器:
=
:等于。!=
:不等于。<
:小于。>
:大于。<=
:小于等于。>=
:大于等于。and
:逻辑与。or
:逻辑或。not
:逻辑非。
例如,在以下 XML 文档中:
Copy Code<students>
<student id="1">
<name>Tom</name>
<age>20</age>
</student>
<student id="2">
<name>Jerry</name>
<age>22</age>
</student>
<student id="3">
<name>Mike</name>
<age>18</age>
</student>
<student id="4">
<name>Lisa</name>
<age>24</age>
</student>
</students>
要选择年龄在 20 到 24 岁之间的学生,可以使用以下 XQuery 表达式:
Copy Code/students/student[age>=20 and age<=24]
此表达式将返回:
Copy Code<student id="1">
<name>Tom</name>
<age>20</age>
</student>
<student id="2">
<name>Jerry</name>
<age>22</age>
</student>
<student id="4">
<name>Lisa</name>
<age>24</age>
</student>
4. 示例
以下是一个从 XML 文档提取数据的示例。假设有以下 XML 文件:
Copy Code<users>
<user>
<name>John</name>
<age>25</age>
</user>
<user>
<name>Jane</name>
<age>30</age>
</user>
<user>
<name>James</name>
<age>22</age>
</user>
</users>
要提取年龄大于等于 25 的用户的名称,可以使用以下 XQuery 表达式:
Copy Codefor $user in /users/user
where $user/age >= 25
return $user/name
这将返回:
Copy CodeJohn
Jane
5. 总结
在 XQuery 中,选择和过滤是非常重要的功能,使得从 XML 数据中提取所需信息变得非常容易。掌握了基本的选择和过滤知识后,我们可以更加高效地处理 XML 数据。