FLWOR 是 "For, Let, Where, Order by, Return" 的只取首字母缩写。
一、用FLWOR 表达式来查询
例子: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>
查询语句:
for $x in doc("dept.xml")/table/row
where $x/DEPTNO > 20
return $x
结果:
<row>
<DEPTNO>30</DEPTNO>
<DNAME>SALES</DNAME>
<LOC>CHICAGO</LOC>
</row>
<row>
<DEPTNO>40</DEPTNO>
<DNAME>OPERATIONS</DNAME>
<LOC>BOSTON</LOC>
</row>
二、还可以通过FLWOR来排序:
for $x in doc("sample2/dept.xml")/table/row
where $x/DEPTNO > 20
order by $x/LOC
return $x
结果:
<row>
<DEPTNO>40</DEPTNO>
<DNAME>OPERATIONS</DNAME>
<LOC>BOSTON</LOC>
</row>
<row>
<DEPTNO>30</DEPTNO>
<DNAME>SALES</DNAME>
<LOC>CHICAGO</LOC>
</row>
和第一个结果对比就知道变化了。
三、更神奇的是,在FLWOR中可以加入HTML元素
<ul>
{
for $x in doc("sample2/dept.xml")/table/row
where $x/DEPTNO > 20
order by $x/LOC
return <li>{$x/LOC}</li>
}
</ul>
查询的结果是:
<ul>
<li>
<LOC>BOSTON</LOC>
</li>
<li>
<LOC>CHICAGO</LOC>
</li>
</ul>
四、还是有标签,不好看,把它去掉:
<ul>
{
for $x in doc("sample2/dept.xml")/table/row
where $x/DEPTNO > 20
order by $x/LOC
return <li>{data($x/LOC)}</li>
}
</ul>
结果:
<ul>
<li>BOSTON</li>
<li>CHICAGO</li>
</ul>
这正是我们想要的结果!!@_@
分享到:
相关推荐
#### 二、为何选择XQuery? 随着互联网的发展,不同数据源之间的连接日益紧密,产生了跨数据源查询的需求。这些数据源中的许多数据属于“非结构化”或“半结构化”的形式。XML作为一种中立格式,被广泛用于跨系统、...
jar包,亲测可用
jar包,亲测可用
jar包,亲测可用
jar包,亲测可用
jar包,亲测可用
jar包,亲测可用
jar包,亲测可用
jar包,亲测可用
jar包,亲测可用
jar包,亲测可用
jar包,亲测可用
jar包,亲测可用
jar包,亲测可用
jar包,亲测可用
jar包,亲测可用
jar包,亲测可用
jar包,亲测可用
jar包,亲测可用
jar包,亲测可用