【转】XPath的学习
轴:
XPath轴(XPath Axes)可定义某个相对于当前节点的节点集:
1、child 选取当前节点的所有子元素
2、parent 选取当前节点的父节点
3、descendant 选取当前节点的所有后代元素(子、孙等)
4、ancestor 选取当前节点的所有先辈(父、祖父等)
5、descendant-or-self 选取当前节点的所有后代元素(子、孙等)以及当前节点本身
6、ancestor-or-self 选取当前节点的所有先辈(父、祖父等)以及当前节点本身
7、preceding-sibling 选取当前节点的开始标签之前的所有同级节点
8、following-sibling 选取当前节点的结束标签之后的所有同级节点
9、preceding 选取文档中当前节点的开始标签之前的所有节点
10、following 选取文档中当前节点的结束标签之后的所有节点
11、self 选取当前节点
12、attribute 选取当前节点的所有属性
13、namespace 选取当前节点的所有命名空间节点
XPath轴关键字 |
轴的含义说明 |
定位表达式示例 |
表达式解释 |
ancestor |
选择当前节点上层的所有节点 |
//img[@alt='div2-img2']/ancestor::div |
查找到alt属性值为div2-img的图片,并基于图片位置找到他上级的div页面元素 |
descendant |
选择当前节点下层的所有节点 注:不能超出当前节点的结束标签 |
//div[@name='div2']/descendant::img |
查找到name属性值的div页面元素,并基于div的位置找到他下级所有节点中的img页面元素 |
following |
选取当前节点的结束标签之后的所有节点 注:仔细体会与descendant的区别 |
//div[@id='div1']/following::img |
超找到id 属性值为div1的div页面元素,并基于div的位置找到它后面(结束标签之后)节点中的img页面元素 |
following-sibling |
选取当前节点的结束标签之后的所有平级节点 |
//a[@href='http://www.sogou.com']/follo wing-sibling::input |
查找到链接地址为http://www.sogou.com的链接页面元素,并基于链接的位置找到它后续节点中input页面元素 |
preceding |
选择当前节点开始标签之前的所有节点 |
//img[@alt='div2-img2']/preceding::div |
查找到alt属性值为div2-img2的图片页面元素,并基于图片的位置找到它前面节点中的div页面元素 |
preceding-sibling |
选择当前节点开始标签之前的所有同级节点 |
//img[@alt='div2-img2']/preceding-sibling ::a[1] |
查找到alt属性值为div2-img2的图片页面元素,并基于图片的位置找到它前面同级节点中的第二个链接页面元素 |
预期定位的页面元素 |
定位表达式示例 |
使用的属性值 |
定位页面的第一个图片 |
//img[@href='http://www.sogou.com'] |
使用img标签的href属性值 |
定位第二个div中第一个Input输入框 |
//div[@name='div2']/input[@name='div2input'] |
使用div标签的name属性值 使用 input标签的name 属性值 |
定位第一个div中的第一个链接 |
//div[@id='div1']/a[@href='http://www.sogou.com'] |
使用的div标签的id 属性值 使用了a标签的href属性值 |
定位页面的查询按钮 |
//input[@type='button'] |
使用了type属性值 |
【转】XPath的学习的更多相关文章
- xpath的学习
xpath的作用就是两个字“定位”,运用各种方法进行快速准确的定位,推荐两个非常有用的的firefox工具:firebug和xpath checker 定位 1.依靠自己属性,文本定位 //td[ ...
- Xpath语法学习
贴几个我学习Xpath的参考 1 基本使用的参考 XPath学习:基本语法(一) 2 较为详细且清晰例子参考,推荐 XPath 详解,总结 3 详细语法参考 Xpath语法格式整理 4 官方参考 XP ...
- JAVA与DOM解析器提高(DOM/SAX/JDOM/DOM4j/XPath) 学习笔记二
要求 必备知识 JAVA基础知识.XML基础知识. 开发环境 MyEclipse10 资料下载 源码下载 sax.dom是两种对xml文档进行解析的方法(没有具体实现,只是接口),所以只有它们是无 ...
- Xpath注入学习
xpath简介: 提到xpath就要先说下xml,xml意为可扩展标记语言,简单来说就是一种存储数据的标准格式,可以把他视为一个小型的数据库,他可以解决数据在网上传输的标准问题.是一种比数据库更具通用 ...
- 爬虫学习(十三)——xpath基础学习
lxml的作用 lxml是HTML.xml的解析器,主要的功能是如何解析和提取HTML和xml数据 lxml和正则一样,也是使用C来实现的,是一款高性能的python HTML/xml解析器,我们可以 ...
- XmlDocument.selectNodes() and selectSingleNode()的xpath的学习资料
Xpath网页: http://www.w3school.com.cn/xpath/xpath_syntax.asp XDocument.parse(string)类似于XmlDocument.loa ...
- xpath库学习
xpath解析是我们在爬虫中最常用也是最通用的一种数据解析方式. 环境安装 pip install lxml 解析原理 使用通用爬虫爬取网页数据 实例化etree对象,且将页面数据加载到该对象中 使用 ...
- Xpath基础学习
方法 获取文本 a/text() 获取a标签下的文本 a//text() 获取a标签下所有标签的文本 a[text()='xxx']获取文本为xxx的a标签 @符号 a/@href 获取a标签的hre ...
- Xpath语法学习记录
高级参考:https://blog.csdn.net/wudaoshihun/article/details/82226122 举例: 1 <!DOCTYPE html> 2 <ht ...
随机推荐
- Form认证的几点说明
有的页面需要用户认证之后才可以进入,通常都是在Filter的OnActionExecuting方法中我们需要获取当前用户.有两种情况不必登录:1.用户是登录的,也就是认证过的.2.用户上次登录了,但没 ...
- Hello Mybatis 04 使用spring-mybatis
顺着上一篇,这里介绍下spring-mybatis的配置. 我们使用mybatis去操作数据库的时候,每次都要不停地openSession,closeSession好烦躁哇--这样工作哪里有效率可言! ...
- [译+改]最长回文子串(Longest Palindromic Substring) Part II
[译+改]最长回文子串(Longest Palindromic Substring) Part II 原文链接在http://leetcode.com/2011/11/longest-palindro ...
- Winform文件下载之WinINet
在C#中,除了webclient我们还可以使用一组WindowsAPI来完成下载任务.这就是Windows Internet,简称 WinINet.本文通过一个demo来介绍WinINet的基本用法和 ...
- 1编写一个Java程序,计算半径为3.0的圆周长和面积并输出结果。2编写一个Java项目,定义包,在包下定义包含main方法的类。
- WinMTR
一般在windows 来判断网络连通性用ping 和tracert,ping的话可以来判断丢包率,tracert可以用来跟踪路由. 在Linux中有一个好用的网络连通性判断工具,它可以结合ping n ...
- mysql-5.7.17-winx64免安装版,win10环境下安装配置
下载地址:http://dev.mysql.com/downloads/file/?id=467269 1.解压到自定义目录:我解压到了D盘的根目录 2.复制my-default.ini 重命名 my ...
- 学习ASP.NET MVC(二)——我的第一个ASP.NET MVC 控制器
MVC全称是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,是一种软件设计典范,用一种业务逻辑和数据显示分离的方法组织代码,将 ...
- 阿里云配置mysql navcat远程连接
默认是不能用客户端远程连接的,阿里云提供的help.docx里面做了设置说明,mysql密码默认存放在/alidata/account.log 首先登录: mysql -u root -h local ...
- Ztree行政地区树状展示
Ztree行政地区树状展示(点击加载) 效果如下: 开始贴代码: 实体类 Item,用于对Ztree的节点展示 public class Item { private String id; priva ...