高级参考:https://blog.csdn.net/wudaoshihun/article/details/82226122

举例:

 1 <!DOCTYPE html>
2 <html>
3 <head>
4 <meta charset="utf-8">
5 <title></title>
6 </head>
7 <body>
8 <div class="bookstore">
9 <div class="book">
10 <p class="title">张三</p>
11 <p class="price">29.9</p>
12 <p><a href="https://www.baidu.com">百度一下</a></p>
13
14 </div>
15 <div class="book1">
16 <p class="title">李四</p>
17 <p class="price">36.9</p>
18 <p><a href="https://www.jd.com">京东</a></p>
19
20 </div>
21 <div class="book2">
22 <p class="title1" a="a">王五</p>
23 <p class="price1">30</p>
24 <p><a href="https://www.taobao.com">淘宝</a></p>
25 </div>
26
27 </div>
28 </body>
29 </html>
30

选取节点:

/       ......从根节点选取。

----->>:    /html/body/div/div/p

----->>:

张三
29.9
百度一下
李四
36.9
京东
王五
30
淘宝

//      ......从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。

----->>:    //p

----->>:

张三
29.9
百度一下
李四
36.9
京东
王五
30
淘宝

@       ......选取属性。

----->>:   /html/body/div/div/p[@class='title']

----->>:

张三

----->>:  /html/body/div[@class='bookstore']/div[@class='book']/p

----->>:

张三
29.9
百度一下

谓语

选取元素:

选取属于 子元素的第一个元素:

  /html/body/div[@class='bookstore']/div[@class='book']/p[1]

--->>
张三 选取属于 子元素的最后一个 元素: /html/body/div[@class='bookstore']/div[@class='book']/p[last()]
--->>
百度一下 选取属于子元素的倒数第二个元素: /html/body/div[@class='bookstore']/div[@class='book']/p[last()-2]
--->>
张三 选取最前面的两个属于元素的子元素的元素:
/html/body/div[@class='bookstore']/div[@class='book']/p[position()<3]
--->>
张三
29.9 /html/body/div[@class='bookstore']/div[@class='book']/p[position()<2]
--->>
张三

属性选择:

选取所有拥有属性的 title 元素:
//p[@class="price"]
--->>
29.9
36.9 选取所有p>30的元素
//div[p>30]
--->>
李四
36.9
京东 选取元素,且其中的 price 元素的值须大于 30:
/html/body/div/div[p>30]/p[@class="price"]
--->>
36.9

选取多个

选取所有 title 和 price 元素。
//p[@class ="price"]|//p[@class ="title"]
--->>
29.9
36.9
张三
李四

选取 book1、book2 元素的 class 元素
//div[@class = "book"]/p|//div[@class = "book1"]/p
--->>
张三
29.9
百度一下
李四
36.9
京东

Xpath语法学习记录的更多相关文章

  1. Xpath语法学习

    贴几个我学习Xpath的参考 1 基本使用的参考 XPath学习:基本语法(一) 2 较为详细且清晰例子参考,推荐 XPath 详解,总结 3 详细语法参考 Xpath语法格式整理 4 官方参考 XP ...

  2. SQL语法学习记录——JOIN

    学习内容参考来源:www.runoob.com JOIN准备 --为了方便练习,在数据库中创建演示数据: create database TEST; use TEST ; ---------- go ...

  3. Python语法学习记录之tuple该如何使用?

    一.介绍 dict 的用法比较简单,它可以存储任意值,并允许是不同类型的值,下面实例来说明: 下面例子中 a 是整数, b 是字符串, c 是数组,这个例子充分说明哈希数组的适用性. 每一个元素是pa ...

  4. Java 静态内部类与非静态内部类 学习记录.

    目的 为什么会有这篇文章呢,是因为我在学习各种框架的时候发现很多框架都用到了这些内部类的小技巧,虽然我平时写代码的时候基本不用,但是看别人代码的话至少要了解基本知识吧,另外到底内部类应该应用在哪些场合 ...

  5. Python爬虫利器三之Xpath语法与lxml库的用法

    前面我们介绍了 BeautifulSoup 的用法,这个已经是非常强大的库了,不过还有一些比较流行的解析库,例如 lxml,使用的是 Xpath 语法,同样是效率比较高的解析方法.如果大家对 Beau ...

  6. UWP学习记录11-设计和UI

    UWP学习记录11-设计和UI 1.输入和设备 通用 Windows 平台 (UWP) 中的用户交互组合了输入和输出源(例如鼠标.键盘.笔.触摸.触摸板.语音.Cortana.控制器.手势.注视等)以 ...

  7. Python学习记录day5

    title: Python学习记录day5 tags: python author: Chinge Yang date: 2016-11-26 --- 1.多层装饰器 多层装饰器的原理是,装饰器装饰函 ...

  8. Vue学习记录第一篇——Vue入门基础

    前面的话 Vue中文文档写得很好,界面清爽,内容翔实.但文档毕竟不是教程,文档一上来出现了大量的新概念,对于新手而言,并不友好.个人还是比较喜欢类似于<JS高级程序设计>的风格,从浅入深, ...

  9. mondb 常用命令学习记录

    mondb 常用命令学习记录 一.MongoDB 下载安装 MongoDB官网 提供了可用于 32 位和 64 位系统的预编译二进制包,你可以从MongoDB官网下载安装,MongoDB 预编译二进制 ...

随机推荐

  1. 完美数java

    完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数.它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身.如果一个数恰好等于它的因子之和,则称该数为&q ...

  2. Android实现自动登录和记住密码

    效果图: 在勾选自动登录后下次打开软件会直接跳过登录界面 代码: protected void onCreate(Bundle savedInstanceState) { super.onCreate ...

  3. php socket 发送http请求 GET POST

    http://docs.php-http.org/en/latest/httplug/users.html <?php /** * Created by PhpStorm. * User: Mc ...

  4. linux中创建公私钥

    linux中创建公私钥要再~(root)目录下ssh-keygencd /root/.ssh/lsid_rsa 是私钥id_rsa.pub 是公钥把 authorized_keys删除掉,重新建aut ...

  5. 如何通过云效Flow完成自动化部署—主机部署

    如何通过云效Flow完成自动化部署-主机部署,云效流水线Flow是持续交付的载体,通过构建自动化.集成自动化.验证自动化.部署自动化,完成从开发到上线过程的持续交付.通过持续向团队提供及时反馈,让交付 ...

  6. P4199-万径人踪灭【FFT】

    正题 题目链接:https://www.luogu.com.cn/problem/P4199 题目大意 给出一个只包含\(a,b\)的字符串 求有多少个不连续的回文子序列(字母回文,位置对称) \(1 ...

  7. 算法学习->归并排序

    nwpu-2020级算法实验1-problemB Overview 归并排序(Merge sort)是建立在归并操作上的一种有效的排序算法.该算法是采用分治法(Divide and Conquer)的 ...

  8. PyTorch中的Batch Normalization

    Pytorch中的BatchNorm的API主要有: 1 torch.nn.BatchNorm1d(num_features, 2 3 eps=1e-05, 4 5 momentum=0.1, 6 7 ...

  9. NLP与深度学习(五)BERT预训练模型

    1. BERT简介 Transformer架构的出现,是NLP界的一个重要的里程碑.它激发了很多基于此架构的模型,其中一个非常重要的模型就是BERT. BERT的全称是Bidirectional En ...

  10. 架构师必备:MySQL主从延迟解决办法

    上一篇文章介绍了MySQL主从同步的原理和应用,本文总结了MySQL主从延迟的原因和解决办法.如果主从延迟过大,会影响到业务,应当采用合适的解决方案. MySQL主从延迟的表现 先insert或upd ...