XPath简介
Xpath(XML Path Language)是一门在XML和HTML文档中查找信息的语言,可以用来在XML和HTML文档中对元素和属性进行遍历。Xpath语法就是获取文本数据的一定规则。
HTML实例文档
Xpath语法
1.节点选取
表达式 | 描述 | 用法 | 说明 |
namenode | 选取此节点的所有子节点 | div | 选取div下的所有标签 |
// | 从全局节点中选择节点,可任意位置 | //div | 选取整个HTML页面的所有div标签 |
/ | 选取某个节点下的节点 | //div/ul | 选取div标签下的ul标签 |
@ | 选取某个带属性的节点 | //li[@id] | 选择带有id属性的li标签 |
. | 当前节点下 | ./li | 选择当前节点下的li标签 |
用[ ]括号内添加@,将标签属性添加进去,将含有该标签属性的部分提取出来。
例://div/ul/li[@class],将div标签下的li标签下的所有class标签的内容提取出来。
2.谓语
表达式 | 用法说明 |
//div/ul/li[1] //div/ul/li[k] | 选择所有ul下的第一个li标签 选择所有ul下的第k个li标签 |
//div/ul/li[last()] | 选择所有ul下的最后一个li标签 |
//div/ul/li[position()<3] | 选择所有ul下的前两个li标签 |
//li[@id] | 选择带有id属性的li标签 |
//li[@id='line-5'] | 选择所有拥有id=line-5的li标签 |
注意:k表示当前位置下的第k个标签
3.通配符
通配符 | 描述 | 示例 | 结果 |
* | 匹配任意节点 | //li[@id='line-5']/* | 选择所有拥有id=line-5的li标签下的所有节点 |
@* | 匹配节点中的任何属性 | //li[@*] //a[@*] | 选择所有拥有属性的li标签 选择所有拥有属性的li标签 |
注意:若标签下,煤油标签属性,不会被提取出来,会以空格返回
4.选取多个路径
使用 | 来表示选择多个路径
路径表达式 | 结果 |
//ul/li | //ul/script | 选取ul标签下的所有li和script标签 |
//li | //script | 选取文档中所有li和script标签 |
//div/ul/li | /script | 选取属于div标签下的ul标签里所有li标签,以及文档中所有script标签 |