xpath语法学习笔记
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了xpath语法学习笔记相关的知识,希望对你有一定的参考价值。
xml示例文档
<?xml version="1.0" encoding="ISO-8859-1"?> <bookstore> <book> <title lang="eng">Harry Potter</title> <price>29.99</price> </book> <book> <title lang="eng">Learning XML</title> <price>39.95</price> </book> </bookstore>
选取节点:XPath 使用路径表达式在 XML 文档中选取节点
nodename 选择此节点的所有子节点
/ 从根节点选取
// 匹配文档中的节点,不考虑其位置
. 选取当前节点
.. 选取当前节点的父节点
@ 选取属性
bookstore 选取bookstore元素的所有子节点 /bookstore 选择根元素下的bookstore元素,假如路径起始于/ bookstore/book 选取bookstoe的所有子元素中为book的元素 //book 选取文档中的所有book元素,不管它在什么位置 //bookstore//book 选择属于bookstore元素后代的所有book元素,不管它在什么位置 //@lang 选择所有属性为lang的元素
谓语:用来查找某个特定的节点或包含某个特定值的节点,被放在方括号中
/bookstore/book[1] 选取bookstore子元素中的第一个book元素 /bookstore/book[last()] 选取bookstore子元素中的最后一个book元素 /bookstore/book[last()-1] 选取bookstore子元素中倒数第二个book元素 /bookstore/book[postion()<3] 选取bookstore子元素中前两个book元素 //title[@lang] 选取所有title元素且其属性拥有lang名 //title[@lang=‘en‘] 选取所有title元素且其属性拥有lang=‘en‘ /bookstore/book[price>30] 选取bookstore元素下所有子元素中元素price>30book的元素
未知节点
* 任何元素节点 @* 任何属性节点
/bookstore/* bookstore元素下的所有子元素
//* 当前文档的所有元素
//title[@*] 所有带有属性的title元素
选取若干路径
//book/title|//book/price 选取book元素下的所有title和price元素 //title|//price 选取文档中的所有title和price元素
以上是关于xpath语法学习笔记的主要内容,如果未能解决你的问题,请参考以下文章
Selenium Xpath元素无法定位 NoSuchElementException: Message: no such element: Unable to locate element(代码片段