XQuery 概要

XQuery 超级简明概要(2025 版)—— 看这一篇就够了

项目内容一览(记住这些就够日常使用 95% 的场景)
最新稳定版本XQuery 3.1(2017 年发布,所有主流处理器都已支持)
核心理念“用 XML 的方式查询 XML”,完全基于 XPath 3.1
一句话定位专为查询 XML(包括 XML 数据库)而生的“SQL 之于 XML”

1. 基本语法结构(4 大金刚)

结构写法示例用途
路径表达式//book[@category="WEB"]/title快速定位
FLWORfor $b in //book let $p := $b/price where $p > 100 order by $p descending return $b真正强大的查询
元素构造<result>{$b/title, <discount>{ $p * 0.9 }</discount>}</result>输出新 XML
函数declare function local:… 或直接用内置函数复用逻辑

2. 日常 99% 用到的写法速查表

需求一行搞定写法(直接复制)
取所有书//book
取类别为 WEB 的书//book[@category="WEB"]
价格 < 50//book[price < 50]
标题包含“XQuery”(不区分大小写)//book[contains(lower-case(title), "xquery")]
价格前 10 名最贵的书(//book order by xs:decimal(price) descending)[position() <= 10]
分页(第 3 页,每页 20)subsequence(//book order by @id, 41, 20)
按类别分组统计for $c in distinct-values(//book/@category) return <cat name="{$c}" count="{count(//book[@category=$c])}"/>
输出 JSON(XQuery 3.1)array { //book ! map { "title": string(title), "price": . / price } }
添加元素/属性(构造新节点)<book isbn="{$old/@isbn}" category="NEW">{ $old/*, <stock>100</stock> }</book>

3. 主流实现工具(2025 年现状)

工具支持程度典型用途
BaseX完全支持 3.1 + Update + FullText开源最强,最易上手
eXist-db完全支持开源 XML 数据库
MarkLogic完全支持 + 企业级扩展商业最强
Saxon EE/PE/HE完全支持 3.1(EE 支持 Update)Java 环境下最常用
Zorba (已停止)曾经最全基本退出历史舞台

4. 记住这 8 个最常用函数就够了

  1. contains(), lower-case(), matches() → 搜索
  2. distinct-values() → 去重
  3. count(), avg(), max(), min() → 统计
  4. string-join() → 多节点拼字符串
  5. current-dateTime() → 时间戳
  6. doc() / collection() → 读取外部文件
  7. subsequence(..., $start, $length) → 分页
  8. trace($var, "debug:") → 调试打印

5. 一页纸口诀(背会它,XQuery 再也不怕)

找东西 → //路径[条件]
排序分页 → for $x in … order by … return $x => subsequence()
分组 → distinct-values() + count()
搜索 → contains(lower-case(…), lower-case($kw))
构造新 XML → <new>{旧内容, 新节点}</new>
输出 JSON → map { } 和 array { }
改文档 → insert node … into …(需要 Update 支持)

把上面这张表保存下来,日常写 XQuery 基本不会再查文档了!

需要我给你一个“XQuery 30分钟快速入门PPT提纲”或“常见场景模板包”吗?随时说一声就发你!

文章已创建 2783

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部