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],这时候就只有一个匹配出来的节点,所以,请大家仔细揣摩这里面的区别,细细体会


相关文章
|
3月前
|
SQL Java 数据库
什么是 PagingAndSortingRepository?
【8月更文挑战第21天】
60 0
P9094 [PA2020] Mieszanie kolorów
P9094 [PA2020] Mieszanie kolorów
|
6月前
|
缓存 Java API
深入理解JPA
深入理解JPA
189 0
|
Windows
cclientX,pageX,screenX等详解
clientX 观点:鼠标相对于WINDOWS的坐标。 这里这个WINDOWS是指我们能看见的浏览器大小。所以不可能超过显示器的大小,如 screen.width,screen.height
114 0
PAT有几个pat
字符串APPAPT中包含了两个单词“PAT”,其中第一个PAT是第2位§,第4位(A),第6位(T);第二个PAT是第3位§,第4位(A),第6位(T)。 现给定字符串,问一共可以形成多少个PAT?
127 0
|
Oracle Java 关系型数据库
对JPA的理解以及使用
JPA是Java Persistence API的缩写,是Java的一个规范。它用于Java对象和关系数据库之间保存数据。 JPA充当面向对象的领域模型和关系数据库系统之间的桥梁。由于JPA只是一种规范,本身没有任务操作,故需要一个实现。 使用JPA可以对数据库进行非常方便的开发,在如今很多一体化开发项目中表现优秀。
464 0
|
Kubernetes 网络协议 应用服务中间件
k8s的HPA
实现pod的自动伸缩
521 0
|
机器人
你真的了解RPA吗?
RPA(Robotic Process Automation),译为机器人流程自动化,也可称为数字化劳动力(Digital Labor),是一种智能化软件,它可以像人类一样,通过简单的编程来完成设定好的任务流程,优化整个企业的基础流程作业,降低成本、提高效率。
2134 0
PathAnimation
原文:PathAnimation 使用Blend制作PathAnimation 1:选中Path转换为运动路径 2:选择目标对象   PathAnimation使用动态的Path PathAnimation动画在播放的时候,PahtGeometry是已经确定的,不会改变,不会实时的根据Pa...
904 0