XPATH 简介| 学习笔记

简介: 快速学习 XPATH 简介。

开发者学堂课程【XML入门 :XPATH 简介】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/37/detail/831


XPATH 简介


一、使用 dom4j 支持 xpath 的操作

这时候需要一层一层点击,先汇到根节点,然后到下面的 p1,在 p1 里要一层一层从上到下依次解析。发现这里面只有三层,如果有一百层要写一百遍,那这种太复杂了。

所以 dom4j 提供了第四个操作 ——XPath,这个操作直接获取到某一个元素。在day06 里面资料里有一个 xpath,它就是一种书写形式或者一个表达式。里面有一个文档,提供了很多种语言。先看中文,调取实例来看,看前六个。

实例一

/AAA 表示第一层,第一层A就可以取到

/AAA/CCC 表示 AAA 层下面的 CCC

/AAA/DDD/BBB 表示 AAA 下面的 DDD 的 BBB 元素

image.png

实例二

//BBB 表示:和这个名称相同,只要名称是 BBB 都可以得到,不管在哪层。

//DDD/BBB 表示所有 DDD 下面的 BBB 都得到。

来到p1.xml怎么得到所有的 name 元素?

<person>

<p1 id1=”aaaa”>

<name>zhangsan</name>

<age>300</age>

<sex>nv</sex>

</p1>

<p1>

<name>lisi</name>

<age>30</age>

</p1>

</person>

直接//name,所有的 name 元素都可以得到就不需要一层层解析。

实例三

/AAA/CCC/DDD*表示 AAA 中的 CCC 中的 DDD 里面的所有元素。

/*/*/*/BBB 表示前三层下的 BBB 元素。

//*表示所有的元素。

实例四

/AAA/BBB[1]表示 AAA 元素里的第一个 BBB。

/AAA/BBB[last()]表示表示 AAA 元素里的最后一个 BBB。

实例五

//@id 表示只要标签上有 id 属性都可以得到。

//BBB[@id] 表示只要 BBB 上面有 id 属性都可以得到。

实例六

//BBB[@id='b1']表示元素名称是 BBB,在 BBB 元素里面有 id 属性,id 的值是 b1。

//BBB[@name='bbb'] 表示 BBB 下面有 name 属性,name 的值是 bbb。

相关文章
|
9月前
|
Kubernetes 流计算 容器
|
JavaScript 前端开发 UED
深入理解JavaScript中的节流与防抖技术
理解并合理运用节流与防抖技术,可以帮助我们优化事件处理函数的执行频率,从而提升应用的性能和用户体验。这两种技术通过减少不必要的计算和DOM操作,使得Web应用程序能够更加流畅地运行。 通过掌握防抖和节流的实现原理及应用场景,开发者可以更加灵活地编写高效且性能优化的代码,对于面对高频事件处理时尤其重要。在开发中合理选择使用防抖或节流,将直接影响到应用的响应性和效率。
343 1
|
人工智能 IDE 前端开发
|
开发工具 数据安全/隐私保护
【Azure Developer】使用MSAL4J 与 ADAL4J 的SDK时候,遇见了类型冲突问题 "java.util.Collections$SingletonList cannot be cast to java.lang.String"
【Azure Developer】使用MSAL4J 与 ADAL4J 的SDK时候,遇见了类型冲突问题 "java.util.Collections$SingletonList cannot be cast to java.lang.String"
294 0
|
关系型数据库 MySQL Linux
MySQL8.0安装(Linux - centos)
MySQL8.0安装(Linux - centos)
323 0
|
机器学习/深度学习 决策智能
什么是贝叶斯网络?原理入门
什么是贝叶斯网络?原理入门
865 0
什么是贝叶斯网络?原理入门
|
设计模式 自然语言处理 Java
递归下降解析器的设计与实现
递归下降解析器的设计与实现
|
Kubernetes Nacos 微服务
微服务注册与发现的原理与实现
微服务注册与发现的原理与实现
|
存储 关系型数据库 MySQL
mysql数据库练习题(涵盖几乎所有知识点)
mysql数据库练习题(涵盖几乎所有知识点)
|
存储 监控 算法
【JVM】如何定位、解决内存泄漏和溢出
【JVM】如何定位、解决内存泄漏和溢出
822 0