XQuery 术语
XQuery 术语
什么是 XQuery?
XQuery 是一门针对 XML 数据的查询语言,类似于 SQL 针对关系型数据库的查询。
XQuery 具有丰富的表达能力,可以通过 XPath 表达式标识 XML 数据的任何部分,然后执行基于 XPath 表达式的查询和转换操作。
XQuery 语法
XQuery 语法基于 XML,因此,它用 XML 元素(例如,xq:query)来表示查询。XQuery 查询通常包含以下组成部分:
- 选择操作:用于指定要查询的 XML 元素。
- 过滤操作:用于过滤查询结果。
- 投影操作:用于指定要返回的 XML 元素及其属性。
XQuery 支持许多用于操作和转换 XML 数据的函数和操作符。
XPath 表达式
XPath 表达式用于标识 XML 数据中的节点。它具有类似路径的语法,由节点选择器和轴组成。
XPath 表达式的节点选择器包括:
- /:表示根节点的直接子节点。
- //:表示根节点以下的所有节点。
- .:表示当前节点。
- ..:表示当前节点的父节点。
- *:表示所有子节点。
- node():表示任意类型的节点。
XPath 表达式的轴包括:
- ancestor:表示当前节点的所有祖先节点。
- descendant:表示当前节点的所有子孙节点。
- self:表示当前节点自己。
- parent:表示当前节点的父节点。
- child:表示当前节点的所有子节点。
- following-sibling:表示当前节点后续的兄弟节点。
- preceding-sibling:表示当前节点前面的兄弟节点。
XQuery 函数
XQuery 提供了许多内置函数,可用于操作和转换 XML 数据。
以下是一些 XQuery 函数:
- fn:count():用于计算节点或节点集合的数量。
- fn:sum():用于计算节点或节点集合的数值总和。
- fn:string-length():用于计算字符串的长度。
- fn:substring():用于提取字符串的子串。
- fn:concat():用于将两个或多个字符串连接成一个字符串。
- fn:distinct-values():用于获取节点序列中的唯一值。
- fn:insert-before():用于在节点序列中插入一个或多个节点。
- fn:remove():用于从节点序列中删除指定的节点。
XQuery 操作符
XQuery 还提供了许多操作符,可用于对 XML 数据进行计算和转换。
以下是一些 XQuery 操作符:
- =、!=、<、>、<=、>=:用于比较节点或节点序列的值。
- and、or、not:用于逻辑运算。
- +、-、*、div、mod:用于算术运算。
- union、intersect、except:用于节点集合的集合运算。
- «、»:用于比较节点顺序。
- treat、cast、castable:用于数据类型转换。
XQuery 案例
以下是一个 XQuery 查询的例子:
for $n in /catalog/book
where $n/price < 50
order by $n/title
return $n/title
这个查询从文档元素
总结
XQuery 是一种强大的 XML 查询语言,具有丰富的表达能力、丰富的内置函数和操作符,并支持 XPath 表达式和多种节点选择器和轴。XQuery 可以让开发人员轻松地查询、分析和转换 XML 数据。