XPath路径表达式
1. 绝对路径表达式
语法:/根元素/子元素/子子元素...
特点**:**必须从根元素开始,完整地逐层写路径。
示例代码:
<!-- XML结构 --> <school> <class id="1"> <student>小明</student> <student>小红</student> </class> </school>
XPath表达式:/school/class/student
解析结果:所有 <class>
下的 <student>
节点(小明、小红)。
2. 相对路径表达式
语法:./子元素/子子元素...
(开头的 ./
可省略,直接写子元素路径)
特点:从当前节点开始,不需要以根为起点。
场景:当你在某个节点内部继续查找时使用。
示例:
假设当前节点是 <class>
,想找它的子元素:
- 效果等同的写法:
student
或./student
。
解析结果:该<class>
下的所有学生节点。
3. 全文搜索路径表达式(万能路径)
语法://元素
特点:跨层级全文搜索,无论元素在哪一层。
示例:
<library> <book> <title>Java入门</title> </book> <magazine> <title>科技周刊</title> </magazine> </library>
XPath表达式://title
解析结果:所有 <title>
节点(Java入门、科技周刊),无论它们在什么层级。
4. 条件筛选表达式
(1) 按属性存在性筛选
语法://元素[@属性名]
示例:
<products> <product id="1001" status="hot">手机</product> <product id="1002">耳机</product> </products>
XPath表达式://product[@status]
解析结果:筛选出有 status
属性的 <product>
节点(手机)。
(2) 按属性值筛选
语法://元素[@属性名=属性值]
示例://product[@id="1001"]
解析结果:找到 id="1001"
的 <product>
节点(手机)。
对比总结
表达式类型 | 语法示例 | 核心作用 |
---|---|---|
绝对路径 | /root/child | 严格逐层查找特定位置 |
相对路径 | child 或 ./child | 从当前节点出发,向下查找 |
全文搜索 | //element | 忽略层级,找到所有符合条件的元素 |
条件筛选 | //element[@attr] | 根据属性或属性值过滤结果 |
实际应用练习
假设有以下 XML:
<students> <student id="101"> <name>张三</name> <score>90</score> </student> <student id="102"> <name>李四</name> <score grade="A">85</score> </student> </students>
- 找所有学生名字:
//name
(结果:张三、李四) - 找第二个学生的分数:
/students/student[2]/score
(结果:<score grade="A">85</score>
) - 找有
grade
属性的分数://score[@grade]
(结果:李四的分数节点)
如有具体疑问,请告诉我你卡在哪个点?可以用例子帮你分析! 😊
的语法。看完你一定能掌握核心要点!
1. 绝对路径表达式
语法:/根元素/子元素/子子元素...
特点**:**必须从根元素开始,完整地逐层写路径。
示例代码:
<!-- XML结构 --> <school> <class id="1"> <student>小明</student> <student>小红</student> </class> </school>
XPath表达式:/school/class/student
解析结果:所有 <class>
下的 <student>
节点(小明、小红)。
2. 相对路径表达式
语法:./子元素/子子元素...
(开头的 ./
可省略,直接写子元素路径)
特点:从当前节点开始,不需要以根为起点。
场景:当你在某个节点内部继续查找时使用。
示例:
假设当前节点是 <class>
,想找它的子元素:
- 效果等同的写法:
student
或./student
。
解析结果:该<class>
下的所有学生节点。
3. 全文搜索路径表达式(万能路径)
语法://元素
特点:跨层级全文搜索,无论元素在哪一层。
示例:
<library> <book> <title>Java入门</title> </book> <magazine> <title>科技周刊</title> </magazine> </library>
XPath表达式://title
解析结果:所有 <title>
节点(Java入门、科技周刊),无论它们在什么层级。
4. 条件筛选表达式
(1) 按属性存在性筛选
语法://元素[@属性名]
示例:
<products> <product id="1001" status="hot">手机</product> <product id="1002">耳机</product> </products>
XPath表达式://product[@status]
解析结果:筛选出有 status
属性的 <product>
节点(手机)。
(2) 按属性值筛选
语法://元素[@属性名=属性值]
示例://product[@id="1001"]
解析结果:找到 id="1001"
的 <product>
节点(手机)。
对比总结
表达式类型 | 语法示例 | 核心作用 |
---|---|---|
绝对路径 | /root/child | 严格逐层查找特定位置 |
相对路径 | child 或 ./child | 从当前节点出发,向下查找 |
全文搜索 | //element | 忽略层级,找到所有符合条件的元素 |
条件筛选 | //element[@attr] | 根据属性或属性值过滤结果 |
实际应用练习
假设有以下 XML:
<students> <student id="101"> <name>张三</name> <score>90</score> </student> <student id="102"> <name>李四</name> <score grade="A">85</score> </student> </students>
- 找所有学生名字:
//name
(结果:张三、李四) - 找第二个学生的分数:
/students/student[2]/score
(结果:<score grade="A">85</score>
) - 找有
grade
属性的分数://score[@grade]
(结果:李四的分数节点)
如有具体疑问,请告诉我你卡在哪个点?可以用例子帮你分析! 😊
相关文章:
XPath路径表达式
1. 绝对路径表达式 语法:/根元素/子元素/子子元素... 特点**:**必须从根元素开始,完整地逐层写路径。 示例代码: <!-- XML结构 --> <school> <class id"1"> <student>小明</student> &l…...
大语言模型的逻辑:从“鹦鹉学舌”到“举一反三”
引言 近年来,大语言模型(LLM)在自然语言处理领域取得了突破性进展,其强大的文本生成和理解能力令人惊叹。然而,随着应用的深入,人们也开始关注LLM的“逻辑”问题:它究竟是机械地模仿人类语言&a…...
从0到1构建AI深度学习视频分析系统--基于YOLO 目标检测的动作序列检查系统:(0)系统设计与工具链说明
文章大纲 系统简介Version 1Version2环境摄像机数据流websocket 发送图像帧RTSP 视频流树莓派windows消息队列参考文献项目地址提示词系统简介 Version 1 Version2 环境 # 配置 conda 源 # 配置conda安装源 conda config --add channels https://mirrors.tuna.tsinghua.edu.c…...
在Linux环境部署SpringBoot项目
在xshell中手动开放8080端口 sudo ufw allow 8080/tcp systemctl reload ufw systemctl restart ufw 配置文件要求 也可以使用maven来分平台 部署到linux服务器上 1.建一个文件夹 2.将jar包拖拽到文件夹中 3.运行nohup java -jar jar包 &的命令启动程序 //后台启动 …...
8. 保存应用数据
一、课程笔记 1.0 引入 针对那些体积小,访问频率高,且对它的速度有一定要求的轻量化数据。例如,用户偏好设置用配置参数等,使用传统的惯性数据库进行存储,不惊险的笨重,还可能引入不必要的性能开销。 此时…...
ADC采集模块与MCU内置ADC性能对比
2.5V基准电压源: 1. 精度更高,误差更小 ADR03B 具有 0.1% 或更小的初始精度,而 电阻分压方式的误差主要来自电阻的容差(通常 1% 或 0.5%)。长期稳定性更好,分压电阻容易受到温度、老化的影响,长…...
量子算法:英译名、概念、历史、现状与展望?
李升伟 整理 #### 英译名 量子算法的英文为 **Quantum Algorithm**。 #### 概念 量子算法是利用量子力学原理(如叠加态、纠缠态和干涉)设计的算法,旨在通过量子计算机高效解决经典计算机难以处理的问题。其核心在于利用量子比特(…...
水仙花数(华为OD)
题目描述 所谓水仙花数,是指一个n位的正整数,其各位数字的n次方和等于该数本身。 例如153是水仙花数,153是一个3位数,并且153 13 53 33。 输入描述 第一行输入一个整数n,表示一个n位的正整数。n在3到7之间&#x…...
基于编程语言的建筑行业施工图设计系统开发可行性研究————从参数化建模到全流程自动化的技术路径分析
基于编程语言的建筑行业施工图设计系统开发可行性研究————从参数化建模到全流程自动化的技术路径分析 文章目录 **基于编程语言的建筑行业施工图设计系统开发可行性研究————从参数化建模到全流程自动化的技术路径分析** 摘要引言一、技术可行性深度剖析1.1 现有编程语言…...
【Linux】【网络】UDP打洞-->不同子网下的客户端和服务器通信(未成功版)
【Linux】【网络】UDP打洞–>不同子网下的客户端和服务器通信(未成功版) 上次说基于UDP的打洞程序改了五版一直没有成功,要写一下问题所在,但是我后续又查询了一些资料,成功实现了,这次先写一下未成功的…...
C# 中的Action和Func是什么?Unity 中的UnityAction是什么? 他们有什么区别?
所属范围:Action 和 Func 是 C# 语言标准库中的委托类型,可在任何 C# 项目里使用;UnityAction 是 Unity 引擎专门定义的委托类型,只能在 Unity 项目中使用。 返回值:Action 和 UnityAction 封装的方法没有返回值&…...
SparkStreaming之03:容错、语义、整合kafka、Exactly-Once、ScalikeJDBC
SparkStreaming进阶 一 、要点:star:4.1 SparkStreaming容错4.1.1 SparkStreaming运行流程4.1.2 如果Executor失败?:star:4.1.3 如果Driver失败?4.1.4 数据丢失如何处理:star:4.1.5 当一个task很慢容错 :star:4.2 SparkSreaming语义4.3 SparkStreaming与…...
让单链表不再云里雾里
一日不见,如三月兮!接下来与我一起创建单链表吧! 目录 单链表的结构: 创建单链表: 增加结点: 插入结点: 删除结点: 打印单链表: 单链表查找: 单链表…...
Linux系统管理(十八)——Ubuntu Server环境下载安装图形化界面、英伟达显卡驱动、Cuda、cudnn、conda的深度学习环境
安装ubuntu系统 镜像源地址:https://ubuntu.com/download/server 安装镜像是最好联网,这样不需要自己配置网络地址,会自动生成动态地址 配置镜像源 在装系统时最好设置好镜像源地址 清华镜像源:https://mirrors.tuna.tsinghua.…...
深度学习的隐身术:详解 PyTorch nn.Dropout
前言 你是否遇到过这样的情况?训练时模型表现得像个学霸,准确率高得离谱,可一到测试集就原形毕露,像是考试作弊被抓包的学生,成绩一落千丈。这种现象叫过拟合,你的模型可能只是死记硬背了训练数据,并没有真正理解其中的模式。 别慌!解决过拟合的方法之一就是Dropout,…...
vscode工作区看不清光标
案例分析: 有的时候当我们把vscode的背景色设置成黑色或者默认黑色时 "workbench.colorTheme": "Visual Studio Dark"这时鼠标指针在非停留状态(指针移动时就看不清),需要改下系统的鼠标指针设置,而不是vscode的光标设置…...
2025-03-04 学习记录--C/C++-PTA 习题5-4 使用函数求素数和
合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。💪🏻 一、题目描述 ⭐️ 二、代码(C语言)⭐️ #include <stdio.h>// 函数声明:判断一个数是…...
Open3D 学习指南 (持续学习)
本章仅为个人学习整理。 Open3D: https://www.open3d.org/ Github repo: https://github.com/isl-org/Open3D 1. 概述 Open3D 是一个开源库,旨在为 3D 数据处理提供高效且易用的工具。它由 Intel 开发和维护,支持多种 3D 数据处理任务,如…...
端口安全测试全方位指南:风险、流程与防护策略
在数字化时代,网络安全至关重要,而端口安全作为网络防护的前沿阵地,稍有疏忽就可能为恶意攻击者打开入侵的大门。以下为您详细阐述端口安全测试的全面流程、核心风险点、应对策略及防护建议。 一、测试前的周密筹备 (一…...
3dsmax烘焙光照贴图然后在unity中使用
效果预览 看不清[完蛋!] 实现步骤 使用 软件 软体名称地址photoshophttps://www.adobe.com/products/photoshop.htmlunity3Dhttps://unity.com/3dsmaxhttps://www.autodesk.com.cn/products/3ds-max/free-trialpacker-iohttps://www.uv-packer.com/HDR 贴图地址…...
GCN从理论到实践——基于PyTorch的图卷积网络层实现
Hi,大家好,我是半亩花海。图卷积网络(Graph Convolutional Network, GCN)是一种处理图结构数据的深度学习模型。它通过聚合邻居节点的信息来更新每个节点的特征表示,广泛应用于社交网络分析、推荐系统和生物信息学等领…...
Ollama存在安全风险的情况通报及解决方案
据清华大学网络空间测绘联合研究中心分析,开源跨平台大模型工具Ollama默认配置存在未授权访问与模型窃取等安全隐患。鉴于目前DeepSeek等大模型的研究部署和应用非常广泛,多数用户使用Ollama私有化部署且未修改默认配置,存在数据泄露、算力盗…...
大模型在高血压预测及围手术期管理中的应用研究报告
目录 一、引言 1.1 研究背景与意义 1.2 研究目的 1.3 国内外研究现状 二、大模型预测高血压的原理与方法 2.1 常用大模型介绍 2.2 数据收集与预处理 2.3 模型训练与验证 三、术前风险预测与手术方案制定 3.1 术前风险因素分析 3.2 大模型预测术前风险的方法与结果 …...
网络安全rt是什么意思
1.什么时EDR :完全不同以往的端点被防护思路,而是通过云端威胁情报,机器学习,异常行为分析,攻击指示器等方式,主动发现来自外部或内部的安全威胁 。并进行自动化的阻止,取证,补救和溯源从而有效…...
数据结构篇—栈(stack)
一、引入 在数学史上有这样一个经典问题——汉诺塔问题。 通过动图演示我们发现每一个圆片的运动是什么样的呢? 我们发现,第一个放入的最大圆片将位于整个塔的最底端。所以若想将最大圆片拿出来,就得将压在它身上的所有圆片先按顺序取出才能将…...
python3.13安装教程【2025】python3.13超详细图文教程(包含安装包)
文章目录 前言一、python3.13安装包下载二、Python 3.13安装步骤三、Python3.13验证 前言 本教程将为你详细介绍 Python 3.13 python3.13安装教程,帮助你顺利搭建起 Python 3.13 开发环境,快速投身于 Python 编程的精彩实践中。 一、python3.13安装包下…...
动态内存分配
动态内存分配 1. malloc1.1函数原型1.2参数1.3特点1.4注意事项 2.calloc2.1函数原型2.2参数2.3特点2.4注意事项 3.realloc3.1函数原型3.2参数3.3特点3.4注意事项 4.free4.1 函数原型4.2参数4.3特点 结语 在 C 语言中,主要使用标准库函数 <stdlib.h> 中的几个函…...
物联网设备数据割裂难题:基于OAuth2.0的分布式用户画像系统设计!格行代理是不是套路?2025有什么比较好的副业?低成本的创业好项目有哪些?
一、行业基本面:双赛道增长逻辑验证 1.1 随身WiFi市场:场景红利与技术博弈 移动办公、户外直播等场景推动随身WiFi需求持续增长,格行核心的三网切换技术(移动/联通/电信自动择优)有效解决单一运营商信号覆盖盲区问题&…...
17.10 LangSmith Evaluation 深度实战:构建智能评估体系驱动大模型进化
LangSmith Evaluation 深度实战:构建智能评估体系驱动大模型进化 关键词:LangSmith 评估体系, 大模型质量评估, 自动化评测流水线, 多维度指标分析, 生产环境模型监控 1. 评估体系设计哲学 LangSmith Evaluation 采用 规则评估+模型评估+人工反馈 三位一体的评估框架: #me…...
Gravitino SparkConnector 实现原理
Gravitino SparkConnector 实现原理 本文参考了官网介绍,想看官方解析请参考 官网地址 本文仅仅介绍原理 文章目录 Gravitino SparkConnector 实现原理背景知识-Spark Plugin 介绍(1) **插件加载**(2) **DriverPlugin 初始化**(3) **ExecutorPlugin 初始化**(4) *…...
前端开发好用的AI工具介绍
以下是前端开发中提升效率的 AI 工具 推荐,涵盖代码生成、UI设计、调试优化等场景: 一、代码生成与辅助工具 工具名称特点适用场景GitHub Copilot基于 OpenAI,智能代码补全(支持 JS/TS/React/Vue)快速生成代码片段、函…...
Linux的用户与权限--第二天
认知root用户(超级管理员) root用户用于最大的系统操作权限 普通用户的权限,一般在HOME目录内部不受限制 su与exit命令 su命令: su [-] 用户名 -符号是可选的,表示切换用户后加载环境变量 参数为用户名,…...
COUNT(CASE WHEN ... THEN ... END)详解
在 SQL 查询中,COUNT(CASE WHEN ... THEN ... END) 是一种常见的用法,用于统计满足特定条件的记录数。具体例子: # sexType 2表示女生 COUNT(CASE WHEN h_employee.sexType 2 THEN 1 END) AS 女员工人数解释 CASE WHEN ... THEN ... END&a…...
音视频入门基础:RTP专题(14)——FFmpeg源码中,对H.264的各种RTP有效载荷结构的解析
一、引言 由《音视频入门基础:RTP专题(10)——FFmpeg源码中,解析RTP header的实现》可以知道,FFmpeg源码的rtp_parse_packet_internal函数的前半部分实现了解析某个RTP packet的RTP header的功能。而在解析完RTP head…...
FPGA——4位全加器及3-8译码器的实现
文章目录 一、全加器1、Verilog实现四位全加器2、下载测试 二、3-8译码器1、Verilog实现3-8译码器2、7段数码管显示3-8译码器 三、总结四、参考资料 一、全加器 全加器的定义: 全加器英语名称为full-adder,是用门电路实现两个二进制数相加并求出和的组合…...
软考中级-数据库-3.4 数据结构-图
图的定义 一个图G(Graph)是由两个集合:V和E所组成的,V是有限的非空顶点(Vertex)集合,E是用顶点表示的边(Edge)集合,图G的顶点集和边集分别记为V(G)和E(G),而将图G记作G(V,E)。可以看出,一个顶点集合与连接这…...
软考中级-数据库-3.3 数据结构-树
定义:树是n(n>=0)个结点的有限集合。当n=0时称为空树。在任一非空树中,有且仅有一个称为根的结点:其余结点可分为m(m>=0)个互不相交的有限集T1,T2,T3...,Tm…,其中每个集合又都是一棵树,并且称为根结点的子树。 树的相关概念 1、双亲、孩子和兄弟: 2、结点的度:一个结…...
Win11被背刺,官方泄露免费激活方法
AI已经成为科技圈的主旋律了,在PC圈的龙头微软也不例外。 但最近喜欢背刺用户、极力推崇AI的微软被自家产品背刺了一把。 罪魁祸首就是Microsoft Copilot,如果向Microsoft Copilot提问,是否可以帮忙提供激活Windows11的脚本。 Copilot会立马…...
第十天-字符串:编程世界的文本基石
在编程的广阔领域中,字符串是极为重要的数据类型,它就像一座桥梁,连接着人类的自然语言和计算机能够理解与处理的数字信息。下面,让我们深入探索字符串的世界。 一、字符串简介 字符串是由零个或多个字符组成的有序序列ÿ…...
CentOS7 安装Redis 6.2.6 详细教程
本文主要介绍CentOS7系统下安装Redis6.2.6的详细教程。 1.安装依赖 redis是基于C语言开发,因此想要在服务器上运行redis需要验证是否安装了gcc,没有安装gcc则需先安装 查看是否安装gcc gcc -v如果没有安装gcc,则通过如下命令安装 yum in…...
VsCode使用
vscode前端vue项目启动:Vue项目的创建启动及注意事项-CSDN博客 vscode使用教程:史上最全vscode配置使用教程 - 夏天的思考 - 博客园 vscode如何从git拉取代码:vscode如何从git拉取代码 • Worktile社区...
mac上最好的Python开发环境之Anaconda+Pycharm
文章目录 一、前言 1. Anaconda介绍2. Pycharm介绍 编码协助项目代码导航代码分析Python重构支持Django框架集成版本控制 二、下载Anaconda和Pycharm 1. 下载Anaconda2. 下载Pycharm 三、安装Anaconda和Pycharm 1. 安装Anaconda2. 安装Pycharm 一、前言 1. Anaconda介绍 …...
防火墙旁挂组网双机热备负载均衡
一,二层交换网络: 使用MSTPVRRP组网形式 VLAN 2--->SW3为主,SW4 作为备份 VLAN 3--->SW4为主,SW3 作为备份 MSTP 设计 --->SW3 、 4 、 5 运行 实例 1 : VLAN 2 实例 2 : VLAN 3 SW3 是实例 1 的主根,实…...
Docker 学习(三)——数据管理
容器中的管理数据主要有两种方式: 数据卷 (Data Volumes): 容器内数据直接映射到本地主机环境; 数据 卷容器( Data Volume Containers): 使用特定容器维护数据卷 1.数据卷 数据卷…...
中间件专栏之MySQL篇——MySQL缓存策略
本文所说的MySQL缓存策略与前文提到的buffer pool不同,那是MySQL内部自己实现的,本问所讲的缓存策略是使用另一个中间件redis来缓存MySQL中的热点数据。 一、为什么需要MySQL缓存方案 缓存用户定义的热点数据,用户可以直接从缓存中获取热点…...
高频 SQL 50 题(基础版)_196. 删除重复的电子邮箱
高频 SQL 50 题(基础版)_196. 删除重复的电子邮箱 思路 思路 DELETE p1 FROM Person p1,Person p2 WHEREp1.Email p2.Email AND p1.Id > p2.Id...
github进不去,一直显示错误
1、进入网址Dns检测|Dns查询 - 站长工具 2、复制检测出来的任意一个ip 3、打开电脑的文件夹:C:\Windows\System32\drivers\etc 下的hosts文件下复制这个ip地址 20.205.243.166 4、winr 打开cmd,输入ipconfig/flushdns ipconfig/flushdns出现这个就可以…...
MWC 2025|美格智能发布基于高通®X85 5G调制解调器及射频的新一代5G-A通信模组SRM819W
3月3日,在MWC 2025世界移动通信大会上,美格智能正式推出基于高通X85调制解调器及射频的新一代5G-A通信模组SRM819W,集5G-A、毫米波、AI加持的网络优化等最前沿的通信技术,成为行业首批搭载高通X85的5G通信模组产品,将助…...
【零基础到精通Java合集】第十集:List集合框架
课程标题:List集合框架(15分钟) 目标:掌握List接口核心实现类(ArrayList/LinkedList)的使用与场景选择,熟练操作有序集合 0-1分钟:List概念引入 以“购物清单”类比List特性:元素有序(添加顺序)、可重复、支持索引访问。说明List是Java集合框架中最常用的数据结构…...
《今日-AI-编程-人工智能日报》
一、AI行业动态 荣耀发布“荣耀阿尔法战略” 荣耀在“2025世界移动通信大会”上宣布,将从智能手机制造商转型为全球领先的AI终端生态公司,并计划未来五年投入100亿美元建设AI设备生态。荣耀展示了基于GUI的个人移动AI智能体,并推出多款AI终端…...