DAY4:Xpath语法回顾
## Xpath的常用规则
nodename #选取此节点的所有子节点
/ #从当前节点选取直接子节点
// #从当前节点选取子孙节点
. #选取当前节点
.. #选取当前节点的父节点
@ #选取属性
示例:
//title[@lang=‘eng’]
它代表选择所有名称为title,同时属性lang的值eng的节点
属性获取:通过@获取
示例:
‘//li/a/@href’ 即获取li节点下的a节点的href属性,并以列表形式返回
属性多值匹配: 无法用之前的属性匹配,要用到函数contains()
示例:
(’//li[contains(@class,‘li’)]/a/text()’)
多属性匹配:根据多个属性确定一个节点:用运算符and来链接
示例:
‘//li[contains(@class,“li”) and @name=‘item’]/a/text()’
按序选择:选择的某些属性匹配多个节点,但是只想要某个节点,可以利用中括号传入索引的方法
示例:
‘//li[1]/a/text()’:表示第一个li节点中的a节点的内容
还有last()表示最后一个
position()<3表示位置小于3的li节点
last()-2表示选取倒数第三个li节点
节点轴选择:
ancestor轴可以获取所有祖先节点其后需要两个冒号,*表示选取所有祖先节点
‘//li[1]/ancestor:: *’
当然也可以加具体节点名称获取该节点
attribute()轴获取所有属性值
descendant()获取所有的子孙节点
child轴直接获得所有子节点
following轴,获取当前节点之后的所有节点
following-sibling轴获取当前节点之后的所有同级节点
所有的轴基本用法都一致,需要在其后面加双冒号,双冒号之后可以选择具体条件