数据解析 - xpath 语法

1、基础语法

(1)/

说明:从根节点开始。

示例:/html/body

(2)//

说明:选择匹配的任何位置。

示例://input

(3).

说明:当前节点。

(4)..

说明:父节点。

(5)@

说明:选择属性。

示例://*[@id="kw"] # 表示选择具备 id="kw" 属性的节点

(6)[node]

说明:选择所有 node 子元素。

(7)[@attr]

说明:选取带有 attr 属性的所有元素。

(8)*

说明:通配符,表示任意节点或任意属性。

示例://*[@id="kw"]

 

 

2、选取节点

使用XPath选取节点0

例如:

//div         #选择所有div元素

//div[@class]     # 选择带有class属性的div元素

//div[@id='myId']   # 选择id属性为'myId'的div元素

 

3、路径表达式

XPath使用路径表达式来选取节点。

例如:

//div/p   # 选择所有div下的p元素

//div//p   # 选择所有div下的所有p元素

 

4、通配符

使用通配符匹配元素。

例如:

//*    # 选择所有元素

//div/*   # 选择所有div下的所有子元素

 

5、提取标签的文本数据

使用XPath提取文本内容,返回的对象是一个列表。

例如:

//p/text()   # 提取p元素的文本内容

 

6、谓词

当使用XPath时,谓词是一种用于过滤节点的表达式。

谓词用于在路径中添加条件,以选择满足特定条件的节点。

 

//div[@class='highlight']   # 选择class属性为'highlight'的div元素

//ul/li[position()<3]       # 选择ul下的前两个li元素

 

1、谓词基础

谓词的基本语法是在方括号中放置条件表达式。例如:

//div[@class='highlight']   # 选择class属性为'highlight'的div元素

 

2、 比较运算符

在谓词中可以使用比较运算符,例如:

//p[@id='para1']     # 选择id属性为'para1'的p元素
//a[@href!='#']      # 选择href属性不等于'#'的a元素
//input[@type='text' and @name='username']      # 选择type为'text'且name为'username'的input元素

 

3、 位置谓词

位置谓词用于选择特定位置的节点,谓词下标从 1 开始。

例如:

//ul/li[1]     # 选择ul下的第一个li元素
//div[@class='article']/p[position()=last()]      # 选择class为'article'的div下的最后一个p元素

 

4、范围谓词

范围谓词用于选择一定范围内的节点。

例如:

//div[@id='content']/p[position()>1 and position()<4]    # 选择id为'content'的div下的第2到第3个p元素

 

5、使用逻辑运算符

逻辑运算符(and、or、not)可用于组合多个条件。

例如:

//input[@type='text' and (@name='username' or @name='email')]    # 选择type为'text'且name为'username'或'name'为'email'的input元素

 

6、使用函数

XPath还提供一些内置函数,如contains()、starts-with()等,用于进行更复杂的条件判断。例如:

//a[contains(@href, 'example.com')] # 选择href属性包含'example.com'的a元素
//h2[starts-with(@class, 'header')] # 选择class属性以'header'开头的h2元素

 

posted @   今天的雪有点大  阅读(15)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示