分享

XQuery简介与使用一

 江江385 2013-03-28
  • 一、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():取子串

    也可以自定义函数。

     

      本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
      转藏 分享 献花(0

      0条评论

      发表

      请遵守用户 评论公约

      类似文章 更多