XPATH了解
特殊标签
找SVG这种特殊标签可以使用[name()='svg'],如//[name()='svg']/[name()='line'][2]
文本
找标签内的文本时可以使用: //*[text()='abc']
如果有空格或回车什么的,就截空下://a[normalize-space(text())='abc']
如果想取回当前节点下的所有文本可用://a[normalize-space(.)]
常用函数
| 函数名 | 解释 |
|---|---|
| contains(@class,'btn') | class属性包含btn |
| starts-with(@class,'btn') | class属性以btn开头 |
| ends-with(@class,'btn') | class属性以btn结尾 |
| text() | 文本 |
| //input[@type='a'][@name='b'] | 并且 |
| //input[@type='a' and @name='b'] | 并且 |
| //input[@type='a' or @name='b'] | 或 |
| //input[@*='a'] | 匹配所有属性 |
| //a[last()] | a的最后一个子元素 |
boolean()
ceiling()
choose()
concat()
contains()
count()
current() XSLT-specific
document() XSLT-specific
element-available()
false()
floor()
format-number() XSLT-specific
function-available()
generate-id() XSLT-specific
id() (partially supported)
key() XSLT-specific
lang()
last()
local-name()
name()
namespace-uri()
normalize-space()
not()
number()
position()
round()
starts-with()
string()
string-length()
substring()
substring-after()
substring-before()
sum()
system-property() XSLT-specific
translate()
true()
unparsed-entity-url() XSLT-specific (not supported)
轴 descendant
XPath轴(XPath Axes)可定义某个相对于当前节点的节点集:
语法:
轴名称::节点测试[谓语]
| 轴 | 选取值 |
|---|---|
| child | 选取当前节点的所有子元素 |
| parent | 选取当前节点的父节点 |
| descendant | 选取当前节点的所有后代元素(子、孙等) |
| ancestor | 选取当前节点的所有先辈(父、祖父等) |
| descendant-or-self | 选取当前节点的所有后代元素(子、孙等)以及当前节点本身 |
| ancestor-or-self | 选取当前节点的所有先辈(父、祖父等)以及当前节点本身 |
| preceding-sibling | 选取当前节点之前的所有同级节点 |
| following-sibling | 选取当前节点之后的所有同级节点 |
| preceding | 选取文档中当前节点的开始标签之前的所有节点 |
| following | 选取文档中当前节点的结束标签之后的所有节点 |
| self | 选取当前节点 |
| attribute | 选取当前节点的所有属性 |
| namespace | 选取当前节点的所有命名空间节点 |
Refer to
https://developer.mozilla.org/en-US/docs/Web/XPath/Functions
https://www.cnblogs.com/jpfss/p/10973806.html
https://www.cnblogs.com/zhaozhan/archive/2009/09/10/1563728.html
http://www.zvon.org/xxl/XPathTutorial/General_chi/examples.html
XPATH了解的更多相关文章
- xpath提取多个标签下的text
title: xpath提取多个标签下的text author: 青南 date: 2015-01-17 16:01:07 categories: [Python] tags: [xpath,Pyth ...
- C#+HtmlAgilityPack+XPath带你采集数据(以采集天气数据为例子)
第一次接触HtmlAgilityPack是在5年前,一些意外,让我从技术部门临时调到销售部门,负责建立一些流程和寻找潜在客户,最后在阿里巴巴找到了很多客户信息,非常全面,刚开始是手动复制到Excel, ...
- 在Java中使用xpath对xml解析
xpath是一门在xml文档中查找信息的语言.xpath用于在XML文档中通过元素和属性进行导航.它的返回值可能是节点,节点集合,文本,以及节点和文本的混合等.在学习本文档之前应该对XML的节点,元素 ...
- XPath 学习二: 语法
XPath 使用路径表达式来选取 XML 文档中的节点或节点集.节点是通过沿着路径 (path) 或者步 (steps) 来选取的. 下面列出了最有用的路径表达式: 表达式 描述 nodename 选 ...
- xpath 学习一: 节点
xpath 中,有七种类型的节点: 元素.属性.文本.命名空间.处理指令.注释.以及根节点 树的根成为文档节点或者根节点. 节点关系: Parent, Children, sibling(同胞), A ...
- Python爬虫利器三之Xpath语法与lxml库的用法
前面我们介绍了 BeautifulSoup 的用法,这个已经是非常强大的库了,不过还有一些比较流行的解析库,例如 lxml,使用的是 Xpath 语法,同样是效率比较高的解析方法.如果大家对 Beau ...
- 使用python+xpath 获取https://pypi.python.org/pypi/lxml/2.3/的下载链接
使用python+xpath 获取https://pypi.python.org/pypi/lxml/2.3/的下载链接: 使用requests获取html后,分析html中的标签发现所需要的链接在& ...
- 关于robotframework,app,appium的xpath定位问题及常用方法
关于类似的帖子好像很多,但是没有找到具体能帮我解决问题的办法.还是自己深究了好久才基本知道app上面的xpath定位和web上的不同点: 先放一个图: A,先说说不用xpath的场景,一般是用于存在i ...
- Selenium Xpath Tutorials - Identifying xpath for element with examples to use in selenium
Xpath in selenium is close to must required. XPath is element locator and you need to provide xpath ...
- xpath定位中starts-with、contains和text()的用法
starts-with 顾名思义,匹配一个属性开始位置的关键字 contains 匹配一个属性值中包含的字符串 text() 匹配的是显示文本信息,此处也可以用来做定位用 eg //input[sta ...
随机推荐
- YII2中controller中的behaviors中的behavior内部是如何被使用的?
1. behaviors方法的调用: 在祖先对象components中有一个ensureBehaviors方法,代码如下: /** * Makes sure that the behaviors de ...
- Photoshop从入门到精通所有视频教程(43G)以及素材资料免费拿
包含了Photoshop从入门到精通所有需要了解的视频教程资料,并且包含了大量的P图素材. 资料获取方式,关注公总号RaoRao1994,查看往期精彩-所有文章,即可获取资源下载链接 更多资源获取,请 ...
- jQuery.ajaxSetup 全局设置ajax的header等配置信息
描述: 设置 AJAX 请求默认地址为 "/xmlhttp/",禁止触发全局 AJAX 事件,用 POST 代替默认 GET 方法.其后的 AJAX 请求不再设置任何选项参数. j ...
- Diagonal Walking v.2 CodeForces - 1036B (思维,贪心)
Diagonal Walking v.2 CodeForces - 1036B Mikhail walks on a Cartesian plane. He starts at the point ( ...
- 打成jar包运行,依然可以找到指定路径的xml
今天遇到一个问题,解决了就想着记下来 无效: getClass().getClassLoader().getResource("ehcache.xml").getPath() 有效 ...
- BZOJ2118 墨墨的等式[同余类最短路]
声明:关于这题的$O(mn)$尚且未深入理解,虽然之前有跟这位神仙聊过做法但并没太懂.. $O(mn\log m)$同余最短路做法: 首先不妨抽出最小的$a_i=m$,那么剩余的$a$如果可以表示出$ ...
- mysql中给查询结果添加序号列
今天同事给了一个小需求,从一个存有不定数量坐标数据的表(map_trace)中每隔20条取一条.最后写了下面这条SQL: select * from (select @n:=@n+1 as n, a. ...
- springcloud实践(三)之断路器:Hystrix
服务雪崩效应 基础服务的故障导致级联故障,进而造成了整个分布式系统的不可用,这种现象被称为服务雪崩效应.服务雪崩效应描述的是一种因服务提供者的不可用导致服务消费者的不可用,并将不可用逐渐放大的过程. ...
- PHP类知识----值传递和引用传递
JS中数组是引用传递 PHP除了资源和对象等数据类型,其数据类型是值传递(即使数组也如此) 栈内存(快速内存)中存放标量数据类型,复合数据类型的变量名和数据地址 在内存中,我们可以认为内存中有很多格子 ...
- js中for..of..和迭代器
for..of是ES6中引入的新特性,它主要的作用是:循环一个可迭代的对象. 它可以循环遍历,数组.字符串.Set对象等等 示例一: let str = 'hello' for (item of st ...