xpath语法?XPath 通配符可用来选取未知的 XML 元素。例子:选取若干路径 通过在路径表达式中使用“|”运算符,您可以选取若干个路径。轴可定义相对于当前节点的节点集。那么,xpath语法?一起来了解一下吧。
只要加入这句语句就可以了//span[text()='唯一标识']/../preceding-sibling::td/input[@type='checkbox']
XPath即为XML路径语言,它是一种用来确定XML(标准通用标记语言的子集)文档中某部分位置的语言。XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力。起初 XPath 的提出的初衷是将其作为一个通用的、介于XPointer与XSL间的语法模型。但是 XPath 很快的被开发者采用来当作小型查询语言。
相信写过爬虫的同学,都知道XPath的存在。博主最近在学习 Scrapy 的时候,就了解了一下XPath语法,这里给大家简单地介绍一下:
首先我们需要了解几个 XPath 术语。
2017/3/3 16:02:29
在 XPath 中,有七种类型的节点:元素、属性、文键腔本、命名空间、处理指令、注释以及文稿轮衫档(根)节点。XML 文档是被作为节点树来对待的。树的根被称为文档节点或者根节点。
以下面这xml文档为例:
上面例子的节点为:
父:每个元素以及属性都有一个父。例子中
子:元素节点可有零个、一个或多个子。例子中
兄弟:拥有相同的父的节点。例子中
祖先:某节点的父、父的父,桐做等等。
后代:某节点的子、子的子,等等。
基本值是无父或无子的节点。
上面例子的基本值为:
项目是基本值或者节点。
ok,接下来开始正式讲解 XPath 语法(注意,以下表达式当然可以混合使用):
选取此节点的所有子节点。
1、Xpath也可以使用元素的属性值来定位,以百度输入框和搜索按钮为例
2、通过id属性值来定位:注释://表示在当前页面的某个目录下,input表示定位元素的标签名,[@id='kw'],表示这个元素的id属性值等于kw
3、通过name和class属性值来定位:如果不想指定标签名,则也可以用*代替,当然,使用Xpath不局限于id,name和class这三个属性值,元素的任意属性值都可以使用,只要它是唯一的标识元素
4、层级与属性结合。如果一个元素本身没有可以唯一标识这个元素的属性值,那么我们可以找到其上一级元素,如果它的上一级有唯一可以标识属性的值,也可以拿来使用
5、使用逻辑运算符。如果一个属性不能唯一地区分一个元素,我们还可以使用逻辑运算符连接多个属性来查找元素。例如,假如要查找第一行元素,则:
//span[text()='唯一标识']/../preceding-sibling::td/input[@type='checkbox']
/是在它的子结点中查团扰找,而//是在它的所有子结点中查找,包括子结点的子结点等等大或则
比如:
滚棚
lev2_2
那么如果用lev1/lev2只能得到文本是lev2_2的这个结点,而如果用lev1//lev2,则两个lev2结点都能得到
以上就是xpath语法的全部内容,在 XPath 中,有七种类型的节点:元素、属性、文本、命名空间、处理指令、注释以及文档(根)节点。XML 文档是被作为节点树来对待的。树的根被称为文档节点或者根节点。