XPATH

简介: 学习XPATH。

XPATH



◆ /html/div ,没有节点可以被选择,因为/如果用在中间,表示绝对路径,是上一个节点的子结点,而html的子节点是head与body


◆ /html//div ,表示选择根目录下的所有的子孙后代节点中的div节点,//表示相对路径


◆ //div ,表示选择所有的div节点,可以想想/html//div与//div为什么结果是一样的!


◆ //div/div ,表示选择所有的div节点的子节点中含有div的节点


◆ //div/div/. ,表示选择//div/div节点的当前层的节点,与//div/div的结果相同


◆ //div/div/.. ,表示选择//div/div节点的上一层节点,也就是选择一个div节点,该div节点的子节点有div节点。有点绕口,但细细理解,会恍然大悟的


◆ //div/div/* ,表示选择//div/div的所有子节点,//div/div会有两个匹配出来的节点,但为什么//div/div/*只有一个了呢?这是因为第二个//div/div下面没有子节点了,所以只匹配出来了一个


◆ //div[@id='input'] ,表示选择一个id为’input’的div节点


◆ //div[@id='input']/input ,表示选择一个id为’input’的div节点的input子节点


◆ //table//input[@id='user'] ,表示选择table的子孙后代中id为user的input节点


◆ //input[@name='identity' and @class='Volvo'] ,有的节点,只用一个属性无法定位出来,必须要用到多个属性进行组合定位,用连接符and。这个XPATH表示选择一个name为identity并且class为Volvo的input节点


◆ //input[@name='identity' or @class='Volvo'] ,这个多属性组合用的是or的连接符,这个XPATH表示选择一个name为identity,或者class为Volvo的节点,所以,这个XPATH匹配出来了4个节点


◆ //input[@name='identity' or @class='Volvo'][1] 见图13,我们刚知道了,            


◆  //input[@name='identity' or @class='Volvo']匹配出4个,我们只需要第一个,怎么办?  加index即可://input[@name='identity'or @class='Volvo'][1],请注意,xpath的index是以1开头的,并不是0,请切记!


 取最后一个,//input[@name='identity'or @class='Volvo'][last()]


 需要特别注意的一个地方:


◆  //table//tr//input ,这个匹配出来的,有14个节点,但是如果我们需要取到第一个,怎么办?有可能会用到://table//tr//input[1],但是我们来看看结果,匹配出来的节点居然是8个,而不是1个,这是因为//table//tr//input[1]是指先匹配出//table下面的所有的tr子孙后代节点,并且再此基础上,再匹配出tr节点的所有的子孙后代中的input结点的第一个,由于tr众多,所以匹配出的结果肯定不是一个,但如何能匹配出1个?也就是说我们需要把众多的tr给固定出一个,这时候再看://table//tr[1]//input[1],这时候就只有一个匹配出来的节点,所以,请大家仔细揣摩这里面的区别,细细体会


目录
相关文章
|
缓存 负载均衡 网络协议
|
编解码 iOS开发 开发者
App上架Apple App Store和Google Play流程
App上架Apple App Store和Google Play流程
403 2
|
JavaScript Java 测试技术
『App自动化测试之Appium基础篇』| 从定义、原理、环境搭建、安装问题排查等深入了解Appium
『App自动化测试之Appium基础篇』| 从定义、原理、环境搭建、安装问题排查等深入了解Appium
4669 0
|
12月前
|
Java 开发者
如何通过易语言多线程提升程序响应速度
如何通过易语言多线程提升程序响应速度
528 62
|
11月前
|
XML 数据格式 索引
xpath模块使用教程
XPath 是一种在 XML 文档中查找信息的语言,广泛用于 HTML 解析。本文介绍了 XPath 的安装与使用,包括 lxml 库的安装、解析流程、基本语法、路径表达式、谓语、通配符、多路径选择、逻辑运算、属性查询、索引查询、模糊查询、内容查询、属性值获取及节点内容转换等。通过实例详细说明了各种用法,帮助读者快速掌握 XPath 的应用技巧。
763 39
|
消息中间件 存储 监控
消息队列 MQ使用问题之客户端重启后仍然出现broker接收消息不均匀,该怎么办
消息队列(MQ)是一种用于异步通信和解耦的应用程序间消息传递的服务,广泛应用于分布式系统中。针对不同的MQ产品,如阿里云的RocketMQ、RabbitMQ等,它们在实现上述场景时可能会有不同的特性和优势,比如RocketMQ强调高吞吐量、低延迟和高可用性,适合大规模分布式系统;而RabbitMQ则以其灵活的路由规则和丰富的协议支持受到青睐。下面是一些常见的消息队列MQ产品的使用场景合集,这些场景涵盖了多种行业和业务需求。
|
12月前
|
Web App开发 监控 Linux
在Linux上,有许多软件可以下载和安装
在Linux上,有许多软件可以下载和安装
355 67
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的图书管理系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的图书管理系统附带文章源码部署视频讲解等
140 1
|
分布式计算 监控 大数据
《吊打面试官》- 大数据工程师50道中大厂面试真题保姆级详解
《吊打面试官》- 大数据工程师50道中大厂面试真题保姆级详解
249 1
《吊打面试官》- 大数据工程师50道中大厂面试真题保姆级详解
|
XML Java Android开发
Android Studio App开发实战项目之广告轮播(附源码 可用于大作业)
Android Studio App开发实战项目之广告轮播(附源码 可用于大作业)
514 1