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


相关文章
|
XML Java 数据格式
常用的xpath
常用的xpath
114 0
|
3月前
|
Android开发 UED 开发者
NavigableListDetailPaneScaffold
【9月更文挑战第12天】
27 5
|
4月前
|
XML Java 数据处理
深入了解 XPath
【8月更文挑战第22天】
75 0
|
6月前
PAT 1001 和 1002 A+B问题
PAT 1001 和 1002 A+B问题
|
7月前
|
SQL 分布式计算 HIVE
ApacheHudi使用问题汇总(一)
ApacheHudi使用问题汇总(一)
59 0
|
7月前
|
SQL 分布式计算 数据库
ApacheHudi使用问题汇总(二)
ApacheHudi使用问题汇总(二)
120 0
|
7月前
|
机器学习/深度学习 分布式计算 算法
SparkMllib介绍
SparkMllib介绍
54 0
3.3 Path
3.3 Path
84 0
|
监控 Kubernetes 应用服务中间件
K8S(5)HPA
K8S(5)HPA
320 0
|
算法
PAT条条大路通罗马
Indeed there are many different tourist routes from our city to Rome. You are supposed to find your clients the route with the least cost while gaining the most happiness.
126 0