Xpath常用总结
XPath常用定位节点元素语句总结
将一个XML或HTML文档转换成了DOM树结构后,如何才能定位到特定的节点?XPath实现了这样的功能,它通过DOM树中节点的路径和属性来导航,通过XPath路径表达式可以选择DOM树中的nodes(节点)或是node-set(节点集)。
XPath包含了数量超过100的内置函数。这些函数针对字符串值,数字值,日期和时间比较,节操作,顺序操作,布尔值,等
常用函数
xpath的常用函数主要包含节点集函数,字符串函数,布尔函数,数字函数,网上的资料较多,在此就不再累述,可参考以下资料:
[a] XPath, XQuery, and XSLT Functions http://www.w3schools.com/xpath/xpath_functions.asp
[b] XPath Functions http://www.caucho.com/resin-3.0/xml/xpath-fun.xtp
[c] XPath Functions(MSDN) http://msdn2.microsoft.com/en-us/library/ms256138.aspx
常用定位语句实例
//NODE[not(@class)] 所有节点名为node,且不包含class属性的节点
//NODE[@class and @id] 所有节点名为node,且同时包含class属性和id属性的节点
//NODE[contains(text(),substring] 所有节点名为node,且其文本中包含substring的节点
//A[contains(text(),"下一页")] 所有包含“下一页”字符串的超链接节点
//A[contains(@title,"文章标题")] 所有其title属性中包含“文章标题”字符串的超链接节点
//NODE[@id="myid"]/text() 节点名为node,且属性id为myid的节点的所有直接text子节点
BOOK[author/degree] 所有包含author节点同时该author节点至少含有一个的degree孩子节点的book节点
AUTHOR[.="Matthew Bob"] 所有值为“Matthew Bob”的author节点
//*[count(BBB)=2] 所有包含两个BBB孩子节点的节点
//*[count(*)=2] 所有包含两个孩子节点的节点
//*[name()='BBB'] 所有名字为BBB的节点,等同于//BBB
//*[starts-with(name(),'B')] 所有名字开头为字母B的节点
//*[contains(name(),'C')] 所有名字中包含字母C的节点
//*[string-length(name()) = 3] 名字长度为3个字母的节点
//CCC | //BBB 所有CCC节点或BBB节点
/child::AAA 等价于/AAA
//CCC/descendant::* 所有以CCC为其祖先的节点
//DDD/parent::* DDD节点的所有父节点
//BBB[position() mod 2 = 0] 偶数位置的BBB节点
AUTHOR[not(last-name = "Bob")] 所有不包含元素last-name的值为Bob的节点
P/text()[2] 当前上下文节点中的P节点的第二个文本节点
ancestor::BOOK[1] 离当前上下文节点最近的book祖先节点
//A[text()="next"] 锚文本内容等于next的A节点
最后推荐一款在Firefox中用的XPath插件:
XPath Checker
https://addons.mozilla.org/en-US/firefox/addon/1095
这个插件可以方便查看网页中任意元素的XPath路径,但其自动生成的XPath路径通常不是最简路径。
参考资料:
[1]XPath Examples. http://msdn2.microsoft.com/en-us/library/ms256086.aspx
[2]XPath Tutorial http://www.zvon.org/xxl/XPathTutorial/Output/example1.html
[3]XPath介绍 http://www.xml.org.cn/dispbbs.asp?boardID=14&ID=35493
[4]XPath reference http://msdn2.microsoft.com/en-us/library/ms256115.aspx
[5]XML Path Language (XPath)Version 1.0 http://www.w3.org/TR/xpath
[6]XPath Tutorial http://www.w3schools.com/xpath/default.asp
转载自:https://www.cnblogs.com/huqingyu/archive/2010/02/21/1670073.html
Xpath常用总结的更多相关文章
- XPath常用定位节点元素语句总结
将一个XML或HTML文档转换成了DOM树结构后,如何才能定位到特定的节点?XPath实现了这样的功能,它通过DOM树中节点的路径和属性来导航,通过XPath路径表达式可以选择DOM树中的nodes( ...
- xpath如何使用正则、xpath定位svg标签、xpath常用集合
自己用到的xpath都收集下咯!!! 持续更新本页面 xpath查找svg图标 xpath('//*[local-name() = "svg" and @class="_ ...
- XPath 常用语法札记
* 不包含属性的元素 例如不包含属性的span: span[not(@*)] * 文本包含某部分的元素 例如文本包含Rank的元素: *[contains(text(),'Rank')] * 选择匹配 ...
- 5.5.8 XPath定位
1.什么是XPath XPath定位方式是自动化测试定位技术中的必杀技,几乎可以解决所有的定位难题.它是XML Path语言的缩写,主要用于在XML 文档中选择文档中的节点.基于XML树状文档结构,X ...
- 第一百二十六节,JavaScript,XPath操作xml节点
第一百二十六节,JavaScript,XPath操作xml节点 学习要点: 1.IE中的XPath 2.W3C中的XPath 3.XPath跨浏览器兼容 XPath是一种节点查找手段,对比之前使用标准 ...
- 在Selenium Webdriver中使用XPath Contains、Sibling函数定位
前言 在一般情况下,我们通过简单的xpath即可定位到目标元素,但对于一些既没id又没name,而且其他属性都是动态的情况就很难通过简单的方式进行定位了. 在这种情况下,我们需要使用xpath1.0内 ...
- JavaScript(第三十天)【XPath】
XPath是一种节点查找手段,对比之前使用标准DOM去查找XML中的节点方式,大大降低了查找难度,方便开发者使用.但是,DOM3级以前的标准并没有就XPath做出规范:直到DOM3在首次推荐到标准规范 ...
- selenium之元素定位-xpath
被测试网页的HTML代码 <html> <body> <div id="div1" style="text-align:center&quo ...
- 一起学爬虫——使用xpath库爬取猫眼电影国内票房榜
之前分享了一篇使用requests库爬取豆瓣电影250的文章,今天继续分享使用xpath爬取猫眼电影热播口碑榜 XPATH语法 XPATH(XML Path Language)是一门用于从XML文件中 ...
随机推荐
- 实践作业4:Web测试实践(小组作业)每日任务记录2
实践作业4:Web测试实践(小组作业)每日任务记录2 会议时间:2017年12月22日 会议地点:东九教学楼自习区 主 持 人:王晨懿 参会人员:王晨懿.余晨晨.郑锦波.杨潇.侯欢.汪元 记 录 ...
- linux 创建数据库
mysql -uroot -pxxxxxx 1. 修改服务器的字符集 打开/etc/mysql/my.cnf,在[mysqld]后添加character-set-server=utf8 2. 查看my ...
- 编写高质量代码改善C#程序的157个建议——建议65:总是处理未捕获的异常
建议65:总是处理未捕获的异常 处理为捕获的异常是每个应用程序具备的基本功能,C#在APPDomain提供了UnhandledException事件来接收未捕获到的异常的通知.常见的应用如下: sta ...
- 使用shell脚本build并创建ipa文件(转)
前言 由于项目引入了敏捷开发,需要每天build出一个ipa供QA测试.此前是使用Xcode先achive出一个文件,再在 organizer->achives里发布ipa,一直感觉也没啥不方便 ...
- 关于Java中的几种特殊类与接口,及特殊的创建实例的方法
Java中有一些特殊的类,在教材中讲解的不深,但是确实非常有用的,这里总结一下,里面用到的有网上搜到的内容,这里表示下感谢. 一.成员内部类 成员内部类是在一个内中定义的另外一个类,这个类属于其上的类 ...
- XE7 & FMX 那些年我们一起上过的控件:StringGrid 之(1) 自定义标题样式
FMX下的Grid类控件似乎不太尽如人意,可能是和官方的资料没有跟得上它的发行版本有关系. 以下讨论StringGrid的列表头及对齐方式. 先上个效果图: FMX的列表头估计很多人都是用盒子上流传甚 ...
- Android-Application来传递数据
在上一篇博客中介绍到,Android-Intent意图传递数据,能够传递基本数据类型系列,能够传递对象(需要序列化),等操作: 但是如果要传递 List<T>,这种类型的数据,就不能通过I ...
- C# xsd 验证 XML数据有效性 问题
使用XSD进行批量数据导入时生成的XML数据有效性这样的功能已经不是第一次做了,之前做的时候都没有碰到什么问题,这些天在开发中遇到了一个很头痛的问题就是无论XSD文件规则怎么写,验证都是通过的. 下面 ...
- Postgres数据库在Linux中优化
I/O 优化1 打开 noatime nodirtime,async 方法: 修改 /etc/fstab stat 命令查看 2 调整预读方法: 查看 sudo blockdev --getra /d ...
- CDC--Demo
--CDC通过对事务日志的异步读取,记录DML操作的发生时间.--类型和实际影响的数据变化,然后将这些数据记录到启用--CDC时自动创建的表中.通过cdc相关的存储过程,可以获--取详细的数据变化情况 ...