XPath

本文介绍XPath的基础概念及使用方法,包括XPath的节点类型、节点关系、路径表达式和轴等。通过实例展示如何选取XML文档中的节点。
部署运行你感兴趣的模型镜像

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

 

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

 

在 XPath 中,有七种类型的节点:元素、属性、文本、命名空间、处理指令、注释以及文档节点(或称为根节点)。

节点关系:父(Parent)、子(Children)、同胞(Sibling)、先辈(Ancestor)、后代(Descendant)。

 

XPath 使用路径表达式来选取 XML 文档中的节点或节点集。节点是通过沿着路径(path) 或者步 (steps) 来选取的。

 

表达式                                 描述

nodename                 选取此节点的所有子节点。

/                                    从根节点选取。

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

.                                    选取当前节点。

..                                   选取当前节点的父节点。

@                                 选取属性。

 

 

XPath 轴---轴可定义相对于当前节点的节点集。

轴名称                                                   结果

ancestor                              选取当前节点的所有先辈(父、祖父等)。

ancestor-or-self                 选取当前节点的所有先辈(父、祖父等)以及当前节点本身。

attribute                              选取当前节点的所有属性。

child                                      选取当前节点的所有子元素。

descendant                                  选取当前节点的所有后代元素(子、孙等)。

descendant-or-self           选取当前节点的所有后代元素(子、孙等)以及当前节点本身。

following                              选取文档中当前节点的结束标签之后的所有节点。

namespace                                  选取当前节点的所有命名空间节点。

parent                                           选取当前节点的父节点。

preceding                                     选取文档中当前节点的开始标签之前的所有节点。

preceding-sibling               选取当前节点之前的所有同级节点。

self                                        选取当前节点。

 

绝对路径起始于正斜杠( / )

步的语法:轴名称::节点测试[谓语]   Eg:child::text()    选取当前节点的所有文本子节点。

 

XPath 表达式可返回节点集、字符串、逻辑值以及数字。

XPath 运算符

 

|                 计算两个节点集     eg: //book | //cd    返回所有拥有 book 和 cd 元素的节点集

+                加法        

-                 减法        

*                乘法        

div             除法        

=                等于        

!=               不等于    

<                小于        

<=              小于或等于    

>                大于        

>=              大于或等于    

or               或    

and            与    

mod          计算除法的余数     

您可能感兴趣的与本文相关的镜像

Python3.10

Python3.10

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

09-26
XPath 即 XML 路径语言(XML Path Language),是一种用于在 XML 或 HTML 文档中定位元素的查询语言。以下是关于 XPath 的详细介绍和使用方法: ### 简介 XPath 基础教程适合初学者,能帮助学习者掌握 XPath 元素定位的基本原理和常用技巧。学习完相关课程后,可熟练使用 XPath 在 HTML 或 XML 文档中定位元素,为后续的 Web 自动化测试、数据提取等工作打下坚实基础 [^1]。 ### 使用方法 - **基本路径表达式**: - `/title`:表示根节点下的所有 `title` 标签。 - `//div`:表示根节点下的所有 `div` 标签。 - **谓语(Predicates)**:用于筛选节点。例如 `./div[@class="text"]` 表示当前节点下,属性 `class` 为 `"text"` 的所有 `div` 节点。而 `./div[@class="text"].text()` 则是获取这些 `div` 节点的文本内容 [^2]。 ### 应用场景 - **Web 爬虫**:从网页中提取特定的数据,如新闻标题、商品价格等。 - **Web 自动化测试**:定位页面元素,模拟用户操作,如点击按钮、输入文本等。 ### 代码示例 以下是使用 Python 和 `lxml` 库来演示 XPath 的使用: ```python from lxml import etree # 示例 HTML 文档 html = """ <!DOCTYPE html> <html> <body> <div class="text">This is a sample text.</div> <div>Another div without class.</div> <title>Sample Page</title> </body> </html> """ # 解析 HTML 文档 tree = etree.HTML(html) # 使用 XPath 定位元素 title = tree.xpath('/html/head/title') divs = tree.xpath('//div') text_divs = tree.xpath('.//div[@class="text"]') # 输出结果 print("Title:", title[0].text if title else "No title found") print("All divs:", [div.text for div in divs]) print("Divs with class 'text':", [div.text for div in text_divs]) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值