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 可被用来:
通过例子来学习
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>