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 is the language for querying XML data The best way to explain XQuery is to say that XQuery is to XML what SQL is todatabase tables.
jar包,亲测可用
jar包,亲测可用
jar包,亲测可用
jar包,亲测可用
jar包,亲测可用
jar包,亲测可用
jar包,亲测可用
jar包,亲测可用
jar包,亲测可用
jar包,亲测可用
jar包,亲测可用
jar包,亲测可用
jar包,亲测可用
jar包,亲测可用
jar包,亲测可用
jar包,亲测可用
jar包,亲测可用
jar包,亲测可用
jar包,亲测可用