XQuery 选择 和 过滤
XML实例文档
我们将在下面的例子中继续使用这个 "books.xml" 文档(和上面的章节所使用的 XML 文件相同)。
在您的浏览器中查看 "books.xml" 文件。
选择和过滤元素
正如在前面的章节所看到的,我们使用路径表达式或 FLWOR 表达式来选取和过滤元素。
请看下面的 FLWOR 表达式:
for $x in doc("books.xml")/bookstore/book
where $x/price>30
order by $x/title
return $x/title
- for - (可选) 向每个由 in 表达式返回的项目捆绑一个变量
- let - (可选)
- where - (可选) 设定一个条件
- order by - (可选) 设定结果的排列顺序
- return - 规定在结果中返回的内容
for 语句
for 语句可将变量捆绑到由 in 表达式返回的每个项目。for 语句可产生迭代。在同一个 FLWOR 表达式中可存在多重 for 语句。
如需在一个 for 语句中进行指定次数地循环,您可使用关键词 to :
for $x in (1 to 5)
return <test>{$x}</test>
结果:
<test>1</test>
<test>2</test>
<test>3</test>
<test>4</test>
<test>5</test>
关键词 at 可用于计算迭代:
for $x at $i in doc("books.xml")/bookstore/book/title
return <book>{$i}. {data($x)}</book>
结果:
<book>1. Everyday Italian</book>
<book>2. Harry Potter</book>
<book>3. XQuery Kick Start</book>
<book>4. Learning XML</book>
在 for 语句中同样允许多个 in 表达式。请使用逗号来分割每一个 in 表达式:
for $x in (10,20), $y in (100,200)
return <test>x={$x} and y={$y}</test>
结果:
<test>x=10 and y=100</test>
<test>x=10 and y=200</test>
<test>x=20 and y=100</test>
<test>x=20 and y=200</test>
let 语句
let 语句可完成变量分配,并可避免多次重复相同的表达式。let 语句不会导致迭代。
let $x := (1 to 5)
return <test>{$x}</test>
结果:
<test>1 2 3 4 5</test>
where 语句
where 语句用于为结果设定一个或多个条件(criteria)。
where $x/price>30 and $x/price<100
order by 语句
order by 语句用于规定结果的排序次序。在这里,我们要根据 category 和 title 来对结果进行排序:
for $x in doc("books.xml")/bookstore/book
order by $x/@category, $x/title
return $x/title
结果:
<title lang="en">Harry Potter</title>
<title lang="en">Everyday Italian</title>
<title lang="en">Learning XML</title>
<title lang="en">XQuery Kick Start</title>
return 语句:
return 语句规定要返回的内容。
for $x in doc("books.xml")/bookstore/book
return $x/title
结果:
<title lang="en">Everyday Italian</title>
<title lang="en">Harry Potter</title>
<title lang="en">XQuery Kick Start</title>
<title lang="en">Learning XML</title>
相关文章:
XQuery 选择 和 过滤
XML实例文档 我们将在下面的例子中继续使用这个 "books.xml" 文档(和上面的章节所使用的 XML 文件相同)。 在您的浏览器中查看 "books.xml" 文件。 选择和过滤元素 正如在前面的章节所看到的,我们使用路径表达式或 FL…...
室友打了一把王者的时间,我理清楚了grep,find,管道|,xargs的区别与联系,用的时候不知道为什么要这样用
目录 问题引入 find和grep的基本区别 xargs命令 Linux命令的标准输入 vs 命令行参数 举例总结 问题引入 在自己做项目的过程中,想使用linux命令统计下一个目录下html文件的数量,在思考应该使用grep还是find去配合wc指令统计文件数量,后来…...
python 刷题时常见的函数
collections.OrderedDict 1. move_to_end() move_to_end() 函数可以将指定的键值对移动到最前面或者最后面,即最左边或最右边 。 2. popitem() popitem()可以完成元素的删除操作,有一个可选参数last(默认为True),…...
Python之列表推导式和列表排序
Python中的列表推导式,是小编比较喜欢的一种,他能大大减少你的代码量来得到你想要的结果,下面说说列表中常用的几种推导式 列表排序 Python开发中会经常用到排序操作,这里提供两种方式供大家参考,对象的sort()方法和…...
力扣(LeetCode)240. 搜索二维矩阵 II(C++)
题目描述 枚举 枚举整个矩阵,找到等于 target 的元素,则 return true ,否则 return false。 class Solution { public:bool searchMatrix(vector<vector<int>>& matrix, int target) {int n matrix.size(), m matrix[0]…...
golang defer
文章目录延迟函数的参数在defer语句出现时就已经确定下来了延迟函数没有入参时,延迟函数体内的变量会受到影响延迟函数 *可以* 修改主函数的 *具名* 返回值延迟函数 *无法* 修改主函数的 *匿名* 返回值defer会把声明的 延迟函数以及 函数的入参放到栈上,…...
【Java】线程的死锁和释放锁
线程死锁是线程同步的时候可能出现的一种问题 文章目录1. 线程的死锁1.1 基本介绍1.2 应用案例2. 释放锁2.1 下面的操作会释放锁2.2 下面的操作不会释放锁1. 线程的死锁 1.1 基本介绍 多个线程都占用了对方的锁资源,但不肯相让,导致了死锁,…...
如何使用断点续传上传大文件
概念 大文件上传的需求介绍 不管怎样简单的需求,在量级达到一定层次时,都会变得异常复杂。 文件上传简单,文件变大就复杂 上传大文件时,以下几个变量会影响我们的用户体验 服务器处理数据的能力请求超时网络波动 上传时间会变长…...
【图神经网络】图拉普拉斯滤波器如何实现全通、低通、高通滤波
【图神经网络】图拉普拉斯滤波器如何实现全通、低通、高通滤波 文章目录【图神经网络】图拉普拉斯滤波器如何实现全通、低通、高通滤波1. 前言2. 符号说明3. 三种滤波3.1 全通滤波3.2 低通滤波3.2.1 平滑信号分析3.2.2 广义拉普拉斯平滑滤波器3.3 高通滤波4. 总结1. 前言 GCN&…...
python操作mysql数据库详解
使用Python操作MySQL数据库 MySQL是一种关系型数据库管理系统,它可以用来存储和管理大量的数据。之前介绍了大部分主流数据库,今天将介绍如何使用Python来操作MySQL数据库。 安装MySQL 首先,我们需要安装MySQL服务器,可以从MyS…...
netty群聊系统
1设计思路:启动一个服务端,多个客户端第一个客户端启动时,会告诉服务器上线了第二个客户端启动时,告诉服务器上线,并且通知第一个启动的客户端第三个客户端启动时,告诉服务器上线,并且通知第一个…...
Android 初代 K-V 存储框架 SharedPreferences,旧时代的余晖?
本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 提问。 前言 大家好,我是小彭。 SharedPreferences 是 Android 平台上轻量级的 K-V 存储框架,亦是初代 K-V 存储框架,至今被很多应用沿用。 有的…...
在windows中使用tomcat搭建Jenkins
1、 准备环境:JDK JDK官网下载:https://download.oracle.com/java/19/latest/jdk-19_windows-x64_bin.msi 2、 tomcat包 tocat官网下载:https://tomcat.apache.org/download-90.cgi 3、 Jenkins.war包 Jenkins官网下载:https://mi…...
Linux系统
linux系统 世界上最重要的服务器端操作系统。 创建新目录 mkdir app mkdir -m 目录权限 目录名 创建有权限的目录名。 创建一个空白文件 touch app.txt创建一个文件。 cat创建一个文件。 vi/vim创建一个文件。 nano创建一个文件。 truncate创建一个文件。 pwd查看当前目录。 rm…...
Mel Frequency Cepstral Coefficients (MFCCs)
wiki里说 在声音处理中,梅尔频率倒谱( MFC ) 是声音的短期功率谱的表示,基于非线性梅尔频率标度上的对数功率谱的线性余弦变换。 倒谱和MFC 之间的区别在于,在 MFC 中,频带在梅尔尺度上等距分布,这比正常频谱中使用的线…...
第七讲---贪心(上课)
1.股票买卖 一、贪心 考虑一种方案,在每次上升的前一天购入股票,并在上升后的当天卖出的方案 if (w[i] > w[i - 1])res w[i] - w[i - 1];接下来证明该贪心思路得出的方案即是最优解。 (1)证明贪心解 ≥ 最优解: …...
计算机如何思考与图灵完备
图灵完备是针对一套数据操作规则而言的概念,数据操作规则可以是一门编程语言,也可以是计算机实现里面的指令集,比如C/C++是图图灵完备的,通用CPU也是图灵完备的,但是GPU却不一定是图灵完备的。说白了图灵完备定义了一套规则,当这套规则可以实现图灵迹模型里的全部功能时,…...
惠普LaserJet M1005 MFP报错b2
故障现象: 惠普LaserJet M1005 MFP开机后直接报b2错误; 检测维修: 故障大意是:机器的硬件可能出现点突变,此问题建议联系当地维修中心进行处理。...
网络协议(TCP/IP)
目录一、网络分层模型二、OSI模型三、网络传输原理四、TCP/IP1、TCP/IP 原理2、TCP 三次握手/四次挥手3、Http协议和TCP/IP的区别五、HTTP原理六、HTTPS原理七、CDN原理一、网络分层模型 互联网的本质就是一系列的网络协议,最早由ISO国际组织定义为7层网络参考模型…...
2023河南省第二届职业技能大赛郑州市选拔赛“网络安全” 项目比赛样题任务书
2023河南省第二届职业技能大赛郑州市选拔赛“网络安全” 项目比赛样题任务书2023河南省第二届职业技能大赛郑州市选拔赛“网络安全” 项目比赛样题任务书A模块基础设施设置/安全加固(200分)A-1:登录安全加固(Windows, Linux&#…...
丹青幻境部署案例:高校数字艺术实验室低成本GPU算力复用方案
丹青幻境部署案例:高校数字艺术实验室低成本GPU算力复用方案 1. 项目背景与挑战 很多高校的数字艺术、动画设计或新媒体专业,都面临一个共同的难题:教学和创作需要强大的AI绘图能力,但专门采购一批高性能GPU服务器,预…...
DeepFace模型管理终极指南:告别首次运行等待的3种快速方案
DeepFace模型管理终极指南:告别首次运行等待的3种快速方案 【免费下载链接】deepface A Lightweight Face Recognition and Facial Attribute Analysis (Age, Gender, Emotion and Race) Library for Python 项目地址: https://gitcode.com/GitHub_Trending/de/de…...
NanoPC-T6开发板实战:手把手教你制作并烧录RK3588的Recovery镜像(含完整分区解析)
NanoPC-T6开发板实战:手把手教你制作并烧录RK3588的Recovery镜像(含完整分区解析) 在嵌入式开发领域,能够独立制作和烧录Recovery镜像是一项至关重要的技能。对于使用NanoPC-T6开发板和RK3588芯片的开发者来说,掌握这一…...
从仿真到AI数据集:一条龙搞定COMSOL+MATLAB+Python数据处理流水线
从仿真到AI数据集:COMSOLMATLABPython全流程自动化实践 在物理仿真与机器学习融合的研究中,最耗时的往往不是算法设计,而是高质量数据集的构建。想象一下这样的场景:你需要在数百组参数组合下运行电磁场仿真,每次仿真生…...
Phi-3 Forest Lab实战案例:用128K上下文处理整本API文档并生成测试用例
Phi-3 Forest Lab实战案例:用128K上下文处理整本API文档并生成测试用例 1. 项目背景与价值 在现代软件开发中,API文档的处理和测试用例生成是两项耗时且容易出错的工作。传统方法需要工程师手动阅读大量文档并编写测试代码,效率低下且难以保…...
电脑卡顿的幕后真相:为什么你的内存总是不够用?
电脑卡顿的幕后真相:为什么你的内存总是不够用? 【免费下载链接】memreduct Lightweight real-time memory management application to monitor and clean system memory on your computer. 项目地址: https://gitcode.com/gh_mirrors/me/memreduct …...
阿里云服务器上Certbot更新Let‘s Encrypt证书总超时?一个更换公网IP的实战解决记录
阿里云服务器Certbot更新Lets Encrypt证书超时问题深度解析与实战解决 最近在阿里云北京区域的服务器上更新Lets Encrypt证书时,遇到了一个看似简单却令人困扰的问题:Certbot在续签证书时频繁报错,提示acme-v02.api.letsencrypt.org连接超时。…...
MySQL基础运维:日志基础之慢查询日志与错误日志 | 作用、配置与查看方法全实战
本文承接MySQL运维系列内容,聚焦新手入门运维最刚需的两大核心日志:错误日志、慢查询日志。 很多新手学习MySQL时,都会遇到两个最头疼的问题:一是MySQL启动失败、运行报错,完全不知道去哪找原因;二是SQL执行…...
为什么企业还在用有漏洞的Weblogic?CVE-2019-2725背后的升级困境与临时解决方案
企业级Weblogic漏洞管理:CVE-2019-2725的实战应对策略 当安全团队第37次在周报中标注"Weblogic CVE-2019-2725漏洞亟待修复"时,某金融企业的CTO看着测试环境里崩溃的支付网关系统,默默将升级计划表又往后推了一周。这不是个案——据…...
Youtu-VL-4B-Instruct多模态模型部署教程:预防磁盘空间不足的5个实用技巧
Youtu-VL-4B-Instruct多模态模型部署教程:预防磁盘空间不足的5个实用技巧 1. 引言:多模态模型部署的磁盘挑战 部署大型多模态模型时,磁盘空间管理往往是第一个需要面对的挑战。Youtu-VL-4B-Instruct作为腾讯优图实验室开发的视觉语言模型&a…...
