强大的XPath(一)
记录下我那记忆中尘超过封的强大的的XPATH.它那曾经的辉煌让我抓毛。可是现在感觉都要OUT了,可能是我自己的感觉吧,自己用得少了吧!
XPath 是一门在 XML 文档中查找信息的语言。XML是它最为亲密的Friend。XPath 可用来在 XML 文档中对元素和属性进行遍历。 XQuery 和 XPointer 同时被构建它的基础上, 因此,它在很多地方还是有很多好处的。说下它的主要语言构成元素。
1:XPath路径
它的路径表达式和我们在电脑文件系统中看到的表达式非常相似。甚至比文件系统更为精确。XPath 使用路径表达式用来选取 XML 文档中的节点或者多个节点的集合。节点是通过遍历XML文档中的元素路径来选取的。
最常用的路径表达式如下(没找到插入表格的按钮,groubox中居然不换行,排版得很难看)

节点名(nodename):选择nodename下所有子节点
/ 从根节点选取
// 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置
. 选取当前节点
.. 选择当前节点的父节点
@ 选取属性
/ 从根节点选取
// 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置
. 选取当前节点
.. 选择当前节点的父节点
@ 选取属性
上实例先 ,下面为一测试XML文档 ,结构为:学校->班级{年级,班主任}












测试路径表达式:

测试路径表达式:
school : 选择school元素下所有子节点(学校下所有班级)
/school : / 开头表示绝对路径,表示选择根节点school(选择单个学校)
school/class : 选择school下所有class的子元素,(选择学校所有班级下的所有子节点)
//class : 选取所有 class 子元素,而不管它们在文档中的位置
school//class : 选择school下所有class节点,而不管它们位于 school之下的什么位置
//@number : 选取所有名为 number的属性,(选择所有班级编号)
school : 选择school元素下所有子节点(学校下所有班级)
/school : / 开头表示绝对路径,表示选择根节点school(选择单个学校)
school/class : 选择school下所有class的子元素,(选择学校所有班级下的所有子节点)
//class : 选取所有 class 子元素,而不管它们在文档中的位置
school//class : 选择school下所有class节点,而不管它们位于 school之下的什么位置
//@number : 选取所有名为 number的属性,(选择所有班级编号)
school/class[number='0302']/master : 找出班级编号为"0302"的班级的班主任
看得出来,XPath非常强大,有了表达式,我们不需要在遍历XML文档结构来找出你需要的值的。
未完待续.....
Author:repository
From: http://repository.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
From: http://repository.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述