xpath 语法与使用

基本语法

xpath
xpath可以帮助我们从 elements 中定位数据

  1. 选择节点(标签)
    /html/head/meta : 能够选中html下的head下的所有meta标签

  2. // 能够从任意节点开始选择
    //li 当前页面上的所有li标签
    /html/head//link head下的所有的link标签

  3. @符号的用途
    选择具体某个元素
    //div[@class=“feed”]/ul/li 选择class=“feed”的div下的ul下的li
    a/@href 选择a的href 的值

  4. 获取文本
    /a/text() 获取a下的文本
    /a//text() 获取a下的所有的文本

  5. 点前
    ./a 当前节点下的a标签

  /html                      从根节点选取、或者是元素和元素间的过渡。
  /html/head/title       	 绝对路径(一层层的查找)
  /html//title               / 相对于当前节点
  //title  				     // 从任意位置的节点选取,
  //title/./../..            .当前节点 ..父节点
  //head/meta/@http-equiv    @ 提取标签属性值
  //title/text()             text() 提取开闭标签之间的文本内容

节点修饰语发

 通过索引进行节点修饰(索引从1开始)
  //body/div[3]/div/div[1]/div[position()>10]
  //body/div[3]/div/div[1]/div[last()]
  
 通过标签属性与属性值修饰节点
  //div[@id="qiushi_tag_121536487"]
  //div[@id]
  
 通过子节点的值修饰当前节点
  //span[i>2000]
  
 通过部分包含修饰节点
  //div[contains(@id,"qiushi_tag_")]


节点的通配使用 * 匹配所有节点
  //*[contains(text(),"下一")]

索引  []   从 1 开始 
/bookstore/book[1]  :选取属于 bookstore 子元素的第一个 book 元素。

选取到最后一个元素(相当于可以选取总共所有的元素)[last()]
/bookstore/book[last()]

选取到倒数第二个元素(就是最后一个元素减一) [last()-1]
/bookstore/book[last()-1]

选取在某一个范围区间的元素,(选择bookstore下面的book元素,从第二个开始选择)   [position()>1]
/bookstore/book[position()>1]
//body/div[3]/div/div[1]/div[position()>10]

 xpath语法的并用   |  或
   path1|xpath2 


练习:
1.选取 书店里 所有书的详细信息
/bookstore

2.选取 所有书的标题,所有书的分类签
/bookstore/book/title

3.选取 第一本书的定价
/bookstore/book[1]/price/text()

选取所有价格
/bookstore/book/price/text()

选取价格高于 35 的 price 节点
/bookstore/book[price>35.00]/price

4.选取 最后一本书的作者
/bookstore/book[last()]/author/text()

5.选取 倒数第二本书的 分类标签
/bookstore/book[last()-1]/@category

6.选取 包含cover属性的书的标题
/bookstore/book[@cover]/title/text()

7.选取 定价高于35的书的标题
/bookstore/book[price>35.00]/title

8.选取 定价在30到40之间的书的标题
/bookstore/book[price>35.00 and price<40.00]/title
/bookstore/book[price>35.00 and price<40.00]/title/text()

9.选取 作者多于一个的书的标题
/bookstore/book[count(author)>1]/title

10.选取 作者多于一个的书 只列出所有作者名
/bookstore/book[count(author)>1]/author/text()

11.选取 分类不是web 且价格低于40的书的分类属性值
/bookstore/book[@category!='web' and price<40.00]

12.选取 标题名称包含X的 所有书的定价值
/bookstore/book[title[contains(text(),'X')]]/price/text()
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值