Xpath选择器基础用法介绍
前言
此篇文章中介绍Xpath的定义和基本使用方法,特此记录用来加深印象,较为基础。
正文
1、Xpath简介
Xpath:XML Path Language - XML路径语言是由国际标准化组织W3C指定的,用即为XML路径语言,是一种用来确定XML文档中某部分位置的语言,同样适用于HTML文档的检索。
Xpath表达式:一种灵活、强大的选择元素的方式。
2、Xpath语法规则
2.1、相对路径选择
“//”:从当前节点往下寻找所有的后代元素,不管在什么位置
示例:寻找 html节点下的 body节点下的 所有元素 //html//body
2.2、绝对路径选择
“/”:从根节点选取所有的后代元素
示例:寻找 html节点下的 head节点下的 所有元素 //html//head
2.3、根据属性选择
“[@属性名=‘属性值’]”:根据属性选择元素是通过 [@属性名=‘属性值’] 这种格式
注意:1.属性名前必须加@ 2.属性值一定要有引号,单双引号皆可
示例:寻找 body节点下的 div节点下的 属性名为all-content content-head fn-clear 的所有元素 //body//div[@class='all-content content-head fn-clear']
2.3.1 根据属性选择:属性值包含字符串
“contains(@属性名,‘字符串节点’)”:匹配属性值中包含某些字符串节点
示例:寻找 div节点下的 属性名为car-box节点下 属性名为span节点下 属性名包含字符串“price”的所有元素 //div[@class="car-box"]//span[contains(@class,'price')]
2.4、根据次序选择
“[n’]”:根据次序选择元素是通过 [n] 这种格式,n为选择元素在当前节点下的索引值
注意:索引值从1开始
示例:寻找 div节点下的 属性名为content fn-clear card-wrap元素的 li节点下的第二个元素 //div[@class='content fn-clear card-wrap']//li[2]
2.5、多路径(组)选择
“|”:匹配多路径元素是通过 “xpath表达式1|xpath表达式2|xpath表达式3” 这种格式
示例:寻找 div节点下的 属性名为car-box元素的ul节点下的 li节点1和2下的 h4元素,即获取汽车的表显里程和上牌时间的元素 //div[@class="car-box"]//ul//li[1]//h4|//div[@class="car-box"]//ul//li[2]//h4
注意:使用xpath表达式匹配结果为两种情况:字符串 和 节点对象
1、xpath表达式的末尾为:“/text()” 或 “/@属性名” 得到的列表中为 “字符串”
2、其他剩余所有情况得到的列表中均为 “节点对象”
3、text():获取节点的文本内容