`
lingyibin
  • 浏览: 190913 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

XQuery笔记(一)-- 入门

    博客分类:
  • XML
阅读更多

XQuery是用来从 XML 文档查找和提取元素及属性的语言。

XQuery 1.0 和 XPath 2.0 共享相同的数据模型,并支持相同的函数和运算符。

XQuery 教程:http://www.w3school.com.cn/xquery/xquery_intro.asp

XPath 教程:http://www.w3school.com.cn/xpath/index.asp

 

 

XQuery 可被用来:

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

 

 

通过例子来学习

dept.xml

 

<?xml version="1.0" encoding="UTF-8"?>
<table>
  <row>
    <DEPTNO>15</DEPTNO>
    <DNAME>ACCOUNTING</DNAME>
    <LOC>NEW YORK</LOC>
  </row>
  <row>
    <DEPTNO>20</DEPTNO>
    <DNAME>RESEARCH</DNAME>
    <LOC>DALLAS</LOC>
  </row>
  <row>
    <DEPTNO>30</DEPTNO>
    <DNAME>SALES</DNAME>
    <LOC>CHICAGO</LOC>
  </row>
  <row>
    <DEPTNO>40</DEPTNO>
    <DNAME>OPERATIONS</DNAME>
    <LOC>BOSTON</LOC>
  </row>
</table>

 

 一、选取节点

XQuery 使用函数来提取 XML 文档中的数据。

doc() 用于打开 "dept.xml" 文件:

 

doc("dept.xml")

 

进一步获得路径:

 

doc("dept.xml")/table/row/LOC

 

结果:

 

<LOC>NEW YORK</LOC>
<LOC>DALLAS</LOC>
<LOC>CHICAGO</LOC>
<LOC>BOSTON</LOC>

如果想获得属性怎么办呢?如<LOC field="test"></LOC>,

用@来引用:doc("dept.xml")/table/row/LOC/@field

 

给它加上条件:

 

doc("sample2/dept.xml")/table/row[DEPTNO>20]

 

 

结果:

 

<row>
  <DEPTNO>30</DEPTNO>
  <DNAME>SALES</DNAME>
  <LOC>CHICAGO</LOC>
</row>
<row>
  <DEPTNO>40</DEPTNO>
  <DNAME>OPERATIONS</DNAME>
  <LOC>BOSTON</LOC>
</row>

 

 

再进一步查上面的结果中的LOC标签:

 

doc("sample2/dept.xml")/table/row[DEPTNO>20]/LOC

结果:

 

<LOC>CHICAGO</LOC>
<LOC>BOSTON</LOC>

 

0
0
分享到:
评论
Global site tag (gtag.js) - Google Analytics