做自动化测试所掌握的 XPath 知识点以及详细的例子说明?

学习教程地址:

http://www.w3school.com.cn/xpath/index.asp

XPath 是一门在 XML 文档中查找信息的语言。XPath 用于在 XML 文档中通过元素和属性进行导航。

XPath 术语

先来了解下xpath的相关术语吧:

例子:

<?xml version="1.0" encoding="ISO-8859-1"?>

<bookstore>

<book>
  <title lang="en">Harry Potter</title>
  <author>J K. Rowling</author> 
  <year>2005</year>
  <price>29.99</price>
</book>

</bookstore>
在上述例子中:<bookstore> (文档节点)   <author>J K. Rowling</author> (元素节点)
lang="en" (属性节点)   

节点关系

父(Parent)节点book 元素是 title、author、year 以及 price 元素的父
子(Children)节点title、author、year 以及 price 元素都是 book 元素的子
同胞(Sibling)节点title、author、year 以及 price 元素都是同胞
先辈(Ancestor)节点title 元素的先辈是 book 元素和 bookstore 元素
后代(Descendant)节点bookstore 的后代是 book、title、author、year 以及 price 元素

xpath作用是查找对象的,层层找的,一个元素是一个单独的个体,具有属性,内容

<title lang="en">Harry Potter</title> 

选取节点

XPath 使用路径表达式在 XML 文档中选取节点。节点是通过沿着路径或者 step 来选取的

这个官方的表达式描述,下面我们来一个一个举例说明

表达式描述
nodename选取此节点的所有子节点。
/从根节点选取。
//从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。
.选取当前节点。
..选取当前节点的父节点。
@选取属性。


打开我们的火狐浏览器,打开xml文件,文件例子:

<bookstore>
	<book category="children">
		<title lang="en">Harry Potter</title>
		<author>J K. Rowling</author>
		<year>2005</year>
		<price>29.99</price>
	</book>

	<book category="cooking">
		<title lang="en">Everyday Italian</title>
		<author>Giada De Laurentiis</author>
		<year>2005</year>
		<price>30.00</price>
	</book>

	<book category="web" cover="paperback">
		<title lang="en">Learning XML</title>
		<author>Erik T. Ray</author>
		<year>2003</year>
		<price>39.95</price>
	</book>

	<book category="web">
		<title lang="en">XQuery Kick Start</title>
		<author>James McGovern</author>
		<author>Per Bothner</author>
		<author>Kurt Cagle</author>
		<author>James Linn</author>
		<author>Vaidyanathan Nagarajan</author>
		<year>2003</year>
		<price>49.99</price>
	</book>
	
</bookstore>

打开控制台,进入firepath界面


1:在xpath输入:bookstore,选取所以子节点,


2:输入:bookstore/book,显示所有书的详细信息,一个/是绝对路径,从根元素开始


3:输入://book, 两个//是相对路径,递归查找所有子孙



4:输入:   /bookstore/book/.. ,又返回到了bookstore 层                一个. 是当前层,两个.是上一层


5:取属性,取book分类,输入://book/@category  @表示取属性


6:*叫通配符,表示任意 ,输入  //*


谓语

(Predicates) 

谓语用来查找某个特定的节点或者包含某个指定的值的节点。谓语被嵌在方括号中。[]叫谓语,里面跟的是查询条件

选取:第一个 book 元素 [1]    [last()] 选取最后一个元素      [last()-1]选取到数第二个元素 也可以使用<>等运算符

输入:/bookstore/book[1] 选取属于 bookstore 子元素的第一个 book 元素。



输入:/bookstore/book[last()] 选取属于 bookstore 子元素的最后一个 book 元素。


输入: /bookstore/book[last()-1]     选取属于 bookstore 子元素的倒数第二个 book 元素。



输入: 选取 bookstore 元素的所有 book 元素,且其中的 price 元素的值须大于 35.00。


输入:/bookstore/book[price>35.00]/title 选取 bookstore 元素中的 book 元素的所有 title 元素,且其中的 price 元素的值须大于 35.00。



输入:/bookstore/book[price>35.00]/title/text(),选取title的文本值


输入:如果有注释,可以这么取,//comment()

 

输入://book/year/text() ,可以获取年份的文本值


输入:contains 匹配任何位置相等  //book[contains(@category,'ch')],文章分类包含 ch的 书




最后再次总结一下

看完本篇文章后,你应该要

  • 能学会基本所有的xpath的使用

以上就是xpath的基础知识了

文章的部分内容参考:

https://segmentfault.com/a/1190000009111476#articleHeader0

爬虫入门到精通-网页的解析(xpath)


个人感觉这篇文章还是讲的不错的,比官网好

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

熊猫_water

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值