当前位置: 首页 > 工具软件 > XQuery > 使用案例 >

XQuery简介与使用一

国言
2023-12-01
  • 一、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():取子串

也可以自定义函数。

 

 类似资料: