XPath常见用法示例,XPath基础语法

XPath(XML Path Language)是一种用于在XML文档中查找信息的语言,广泛应用于HTML解析、网页抓取、Web自动化测试等领域。本文将详细介绍XPath的基本语法,并提供常见用法示例,帮助您更好地理解和使用XPath。

XPath常见用法示例

在这部分,我们通过表格的形式展示常见的XPath查询方式,并附上相应的样例。表格包括XPath表达式、用法和应用场景。

XPath表达式用法描述示例HTML结果示例
//*选择所有节点<html><body><div>Test</div></body></html>选择htmlbodydiv等所有节点
//div选择所有div元素<div class="container"><p>Text</p></div>选择所有的div元素
//div[@class='container']选择classcontainerdiv元素<div class="container"><p>Text</p></div>选择class="container"div元素
//a[contains(@href, 'example')]选择href属性中包含examplea标签<a href="https://example.com">Link</a>选择href包含examplea标签
//h1[text()='Hello World']选择文本为Hello Worldh1标签<h1>Hello World</h1>选择文本内容为“Hello World”的h1标签
//a[@href='https://example.com']选择hrefhttps://example.coma标签<a href="https://example.com">Example</a>选择hrefhttps://example.coma标签
//div/p选择div标签下的所有p标签<div><p>First</p><p>Second</p></div>选择div标签下的所有p标签
//div[1]选择第一个div元素<div><p>First</p></div><div><p>Second</p></div>选择第一个div元素(包含First文本的div
//div[last()]选择最后一个div元素<div><p>First</p></div><div><p>Second</p></div>选择最后一个div元素(包含Second文本的div
//a[starts-with(@href, 'https')]选择hrefhttps开头的a标签<a href="https://example.com">Example</a>选择hrefhttps开头的a标签
//ul/li[position()=2]选择ul中的第二个li元素<ul><li>Item 1</li><li>Item 2</li><li>Item 3</li></ul>选择第二个li元素(Item 2

XPath基础语法

XPath的语法结构基于路径表达式,通过路径选择节点。以下是XPath常用语法和操作符。

1 节点选择路径

XPath通过路径表示文档结构,节点选择路径分为两类:

  • 绝对路径:从文档的根节点开始选择路径,路径以斜杠 / 开头。例如:/html/body/div,表示从根节点开始查找html,然后是body,再到div

  • 相对路径:从当前节点开始选择路径,路径不以斜杠 / 开头。例如:body/div,表示从当前节点选择body中的div

2 节点类型选择

  • 通配符 *:选择当前节点的所有子节点。例如:/html/body/*,表示选择body节点下的所有直接子节点。

  • 节点名称:选择特定名称的节点。例如:/html/body/div,表示选择body下的所有div节点。

3 选择元素的属性

  • @符号:用来选择元素的属性。选择某个属性值时,需要在属性名前加@符号。例如://div[@id='main'],表示选择idmaindiv节点。

  • 多条件属性选择:可以通过多个属性值来选择节点。例如://a[@href='https://example.com' and @target='_blank'],表示选择hrefhttps://example.comtarget_blanka节点。

4 使用索引选择节点

  • 节点索引:通过索引选择第几个节点,索引从1开始。例如://div[1],表示选择第一个div节点。

  • 范围选择:选择节点的某一范围。例如://div[position() <= 3],表示选择前3个div节点。

  • 最后一个节点:选择最后一个节点。例如://div[last()],表示选择div标签中的最后一个节点。

5 使用文本选择节点

  • 选择指定文本:使用text()函数来查找具有特定文本的节点。例如://div[text()='Hello'],表示选择文本内容为“Hello”的div节点。

  • 包含某个子字符串:使用contains()函数查找属性值中包含某个子字符串的节点。例如://a[contains(@href, 'example')],表示选择href属性中包含examplea节点。

6 逻辑运算符

XPath支持常见的逻辑运算符进行多条件查询:

  • and:逻辑与,表示两个条件都为真。例如://a[@href='https://example.com' and @target='_blank']

  • or:逻辑或,表示至少有一个条件为真。例如://a[@href='https://example.com' or @href='https://example2.com']

7 常用函数

XPath还提供了丰富的函数,可以增强查询的能力:

  • contains():检查属性值中是否包含某个子串。例如://div[contains(@class, 'active')],表示选择class属性包含activediv

  • starts-with():检查属性值是否以某个子串开头。例如://a[starts-with(@href, 'https://')],表示选择href属性以https://开头的a标签。

  • text():选择文本节点。例如://p[text()='Welcome'],表示选择文本内容为“Welcome”的p标签。

  • position():获取当前节点的位置。例如://ul/li[position()=1],表示选择第一个li节点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值