一些基本的语法规则:
- XQuery 对大小写敏感
- XQuery 的元素、属性以及变量必须是合法的 XML 名称。
- XQuery 字符串值可使用单引号或双引号。
- XQuery 变量由 “$” 并跟随一个名称来进行定义,举例,$bookstore
- XQuery 注释被 (: 和 :) 分割,举例,(: XQuery 注释 :)
本文示例用的dept.xml
<?xml version="1.0" encoding="UTF-8"?> <table> <row> <DEPTNO>15</DEPTNO> <DNAME>ACCOUNTING</DNAME> <LOC field="parent">NEW YORK</LOC> </row> <row> <DEPTNO>20</DEPTNO> <DNAME>RESEARCH</DNAME> <LOC field="child">DALLAS</LOC> </row> <row> <DEPTNO>30</DEPTNO> <DNAME>SALES</DNAME> <LOC field="parent">CHICAGO</LOC> </row> <row> <DEPTNO>40</DEPTNO> <DNAME>OPERATIONS</DNAME> <LOC field="child">BOSTON</LOC> </row> </table>
和之前两篇文章中的dept.xml相比,多了field属性
* If-Then-Else
和C/C++或Java或C#等的语法一样:
for $x in doc("sample2/dept.xml")/table/row
where $x/DEPTNO > 20
return if($x/LOC/@field="parent")
then <parent>{data($x/LOC)}</parent>
else <child>{data($x/LOC)}</child>
结果:
<parent>CHICAGO</parent> <child>BOSTON</child>