XQuery 是声明式 XML 查询语言,核心为路径表达式(如 /bookstore/book)、FLWOR 表达式(for-where-order by-return)、条件构造(if-then-else)、命名空间声明及外部文档加载(doc()),强调结果而非过程。

XQuery 查询 XML 的核心是“用表达式描述你要什么”,而不是一步步告诉它怎么查。它不像编程语言那样写流程,更像 SQL——声明式、简洁、聚焦结果。
路径表达式:最直接的查询方式
就像文件系统里的路径,XQuery 用 / 和 // 定位节点:
-
/bookstore/book:从根开始,找<bookstore></bookstore>下的直接子元素<book></book> -
//title:在整个文档任意层级找所有<title></title>元素(不关心位置) -
/bookstore/book[1]/title/text():取第一个<book></book>的标题文本内容 - 属性要用
@前缀,比如/bookstore/book/@category获取 category 属性值
FLWOR 表达式:处理复杂逻辑的主力
类似 SQL 的 SELECT-FROM-WHERE,适合过滤、排序、组合多组数据:
-
for $b in doc("books.xml")//book:遍历所有 book 节点,绑定到变量$b -
where $b/@category = "fiction":只保留类别为 fiction 的书 -
order by $b/title:按标题升序排列(支持descending) -
return <name>{data($b/title)}</name>:构造新 XML 片段,插入标题文本
注意:for 和 return 必须成对出现;let 可用于预计算中间值,比如 let $price := $b/price。
条件与构造:动态生成结果
查询不只是提取,还能根据条件返回不同结构:
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~