XQuery笔记(二)-- FLWOR 表达式

本文介绍如何使用FLWOR表达式进行XML数据查询、排序及格式化输出,包括基本查询、排序操作以及如何整合HTML元素提升展示效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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>

 这正是我们想要的结果!!@_@

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值