XQuery简介与使用一

  • 一、XQuery简介

 

可以把XQuery理解成XML中SQL语言。XQuery可以用来:

提取信息以便在网络服务中使用 生成摘要报告 把 XML 数据转换为 XHTML 为获得相关信息而搜索网络文档

 

要获取xml文档,需要使用doc()函数,例如:doc("books.xml")

得到doc之后,我们就可以如XPath一样取值,例如:doc("books.xml")//book/title,取得当前文档中所以book元素下的title元素。

 

同XPath一样,也可以使用限定词来取值,例如:doc("books.xml")//book[price=30]/title,取得当前文档中所以价格等于30的书的title元素。

 

规则:

 

XQuery 对大小写敏感 XQuery 的元素、属性以及变量必须是合法的 XML 名称。 XQuery 字符串值可使用单引号或双引号。 XQuery 变量由 “$” 并跟随一个名称来进行定义,举例,$bookstore XQuery 注释被 (: 和 :) 分割,举例,(: XQuery 注释 :)

 

二、XQuery语句和表达式

 

语句简单说起来就是FLWOR,分别是:for,let,where,order by和return的首字母。

 

for..in..:用于遍历,例如: for $x in doc("books.xml")//book,在所有的book元素中遍历,其中$x是临时变量

let:赋值语句,例如:let $x:= 3,把3赋给x;let $x:=(1 to 5),把x赋值为1到5 (1 2 3 4 5)

where:条件判断语句,例如:where $x>30 and $x<60,可以用and或or把多个条件联接

order by:排序语句,例如:order by $x,按变量x的值排序,可以使用“,”进行多重排序。

return:返回语句,用于返回结果,例如:return <li>$x</li>

 

在XQuery中可以使用if..then..else条件表达式。例如:

 

if ($x>30) then (..) else (..);注:if 和else的()是必须的。

 

选择和过滤:

 

可以使用to来决定遍历的值或次数,例如:for $x in (1 to 5)

可以使用at来纪录迭代的次数,例如: for $x at $i in doc("books.xml")//book

可以使用多个in来实现多重迭代,例如:for $x in .., $y in ...

 

三、XQuery元素关系

 

和XPath一样有七种元素。其中无父子关系的值称为基本值,例如文本结点内容,属性值等等;基本值或结点称为item;结点与结点之间可能有父子或辈份关系,例如父结点、子结点、兄弟结点、先辈结点或晚辈结点。

 

四、查询结果

 

可以通过增添元素来修改或转换返回结果。例如:

<html><body>

<ul>

for $x in doc("books.xml")//book/title

return <li>$x</li>

</ul

</body>

 

五、函数

 

XPath、XQuery和XSL使用相同的函数库。具体的请查询帮助。以下举几例:

 

  • uppercase():将文字大写化
  • subString():取子串

也可以自定义函数。

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
内容简介 XQuery是专门针对XML的查询语言,其作用类似于关系数据库的SQL。   本书比较深入全面地介绍了XQuery相关知识,包括XQuery的概述和快速指南,如何使用XQuery编写简单和复杂的查询,如何对XML数据过滤、排序和分组,还讲述了FLWOR表达式、XPath及提取、组合数据的XQuery工具。本书的附录提供了XQuery的函数、内置类型及错误信息,因此可以作为XQuery编程指南。   本书的特点是用简洁的语言深入浅出地介绍了XQuery方方面面的知识,在讲述有些内容时把XQuery与其他广为人知的技术如SQL等相对比,使得读者可以很快上手。阅读本书只须要了解一些基础的XML背景知识。本书除了用于指导编程外,还可用作提高与优化XML数据检索性能的参考书。   本书不仅适合那些须要操作大量XML数据的程序员(不管是使用C#还是Java等语言的程序员都适合阅读本书),还适合管理XML数据库的管理员,以及那些非IT行业但须要频繁使用XML数据的业务人员。   这是一本适合作为XQuery学习教材和参考指南的书。 作者简介 Priscilla Walmsley,多年深入从事XQueryXML Schema相关工作。她是W3C XML Schema工作组1999年到2004年的成员。此外,她还编写了广受好评的《Definitive XML Schema》(Prentice Hall出版社)(译者注:中文名《XML模式权威教程》)一书。最近Priscilla担任Datypic(www.datypic.com)的常务董事,在那里她专注于XML和面向服务架构(SOA)相关的咨询和培训。 目录 前言 第1章 XQuery介绍  1.1 什么是XQuery  1.2 转向XQuery  1.3 路径表达式  1.4 FLWOR表达式  1.5 添加XML元素和属性  1.6 函数  1.7 连接  1.8 求和与分组 第2章 XQuery基础  2.1 XQuery语言的设计  2.2 XQuery与其他标准的关系  2.3 处理查询  2.4 XQuery数据模型  2.5 类型  2.6 命名空间 第3章 表达式:XQuery的组成部分  3.1 表达式种类  3.2 关键字和名称  3.3 查询中的空白符  3.4 字面值  3.5 变量  3.6 函数调用  3.7 注释  3.8 计算顺序和括号  3.9 比较表达式  3.10 条件(ifIthen-else)表达式  3.11 逻辑表达式 第4章 使用路径定位输入文件 4.1 路径表达式 4.2 谓词 4.3 动态路径 4.4 输入文件 4.5 深入了解上下文 第5章 在结果中增加元素和属性  5.1 包含输入文件中的元素和属性  5.2 直接元素构造器  5.3 计算构造器 第6章 使用FLWOR表达式查询和连接  6.1 使用路径表达式查询  6.2 FLWOR表达式  6.3 量化表达式  6.4 选择不同的值  6.5 连接 第7章 排序和分组  7.1 XQuery中的排序  7.2 分组  7.3 对值求聚合 第8章 函数  8.1 内置函数与用户自定义函数  8.2 调用函数  8.3 用户自定义函数 第9章 高级查询  9.1 复制并修改输入文件  9.2 使用位置和序列编号  9.3 合并结果  9.4 使用中间.XML文档 第10章 命名空间与XQuery  10.1 命名空间  10.2 命名空间和XQuery  10.3 查询中的命名空间声明  10.4 在结果中控制命名空间声明 第11章 深入了解类型  11.1 XQuery类型系统  11.2 内置类型  11.3 类型、节点和原子值  11.4 XQuery中的类型检查  11.5 自动类型转换  11.6 序列类型  11.7 构造器和转换 第12章 查询、序言和模块  12.1 查询的结构:序言和主体  12.2 集中使用多个模块中的查询  12.3 变量声明  12.4 声明外部函数 第13章 在XQuery使用Schema  13.1 什么是Schema  13.2 为什么在查询中使用Schema.  13.3 W3C XML Schema:概述  13.4 作用域内的Schema定义  13.5 Schema校验和类型分配  13.6 序列类型和Schema 第14章 静态类型  14.1 什么是静态类型  14.2 typeswitch表达式  14.3 treat表达式  14.4 类型声明  14.5 zero-or-one,one—or-more和exactly—one函数 第15章 查询设计的原则  15.1 查询设计的目标  15.2 清晰化  15.3 模块化  15.4 健壮性  15.5 错误处理  15.6 性能 第16章 操作数值  16.1 数值类型  16.2 创建数值  16.3 比较数值  16.4 算术操作符  16.5 数值函数 第17章 操作字符串  17.1 xs:string类型  17.2 创建字符串  17.3 比较字符串  17.4 子字符串  17.5 得到字符串的长度  17.6 字符串连接和拆分  17.7 操作字符串  17.8 空白符和字符串  17.9 国际化考虑 第18章 正则式  18.1 正则式的结构  18.2 表示单个字符  18.3 表示任意字符  18.4 表示字符的组  18.5 字符类表达式  18.6 勉强模式  18.7 锚  18.8 向后引用  18.9 使用标记  18.10 使用带替换变量的子表达式 第19章 操作日期、时间和时间段  19.1 日期和时间类型  19.2 时间段类型  19.3 提取日期、时间和时间段的组成部分  19.4 使用算术操作符处理日期、时间和时间段  19.5 日期组成部分类型 第20章 操作限定名,URI和ID 20.1 操作限定名 20.2 操作uRI 20.3 操作ID 第21章 操作其他×ML组件  21.1 XML  21.2 处理指令  21.3 文档  21.4 文本节点  21.5 XML实体和字符引用  21.6 CDATA段 第22章 其他XQuery相关的标准  22.1 序列化  22.2 XQueryX  22.3 XQuery修改功能  22.4 全文检索  22.5 用于Java(XQJ)的XQuery API 第23章 实现工具特有的特征  23.1 一致性  23.2 XML,版本支持  23.3 设置查询上下文  23.4 选项声明和扩展表达式  23.5 指定序列化参数 第24章 SQL用户的×Query  24.1 关系模型与XML数据模型  24.2 比较SQL语法和XQuery语法  24.3 结合SQLXQuery  24.4 SQLXML 第25章 XSLT用户的XQuery  25.1 XQuery和XPath  25.2 XQueryXSLT  25.3 XQuery 1.0/XPath 2.0和XPath 1.0的差别 附录A 内置函数参考 附录B 内置类型 附录C 错误汇总 索引

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值