XPath基础

      最近感觉xml的用处挺大的,特别是在数据交互的时候,比如ajax从后台取的数据,就可以得到一个xml文本,还有在很多框架的配置都是用xml进行配置,所以懂得如何从xml提取所需要的信息很重要,在网上学习了一下XPath,虽然网上都有,但是自己还是想整理一下,留着日后用用到时可以参考一下。

一、什么是XPath

XPath 使用路径表达式在 XML 文档中进行导航,确切的说它是一个标准的路径,根据该路径可以解析出xml文档里面的信息。

二、xml基本语法。

1、xml文档

<?xml version="1.0" encoding="ISO-8859-1"?>
<bookstore>

<book>
  <title lang="eng">Harry Potter</title>
  <price>29.99</price>
</book>

<book>
  <title lang="eng">Learning XML</title>
  <price>39.95</price>
</book>

</bookstore>

 

2、选取节点

 表达式          功能
nodename  选取此节点的所有节点
/                 从根节点开始选取
//                从匹配选择的当前节点选择文档中的节点,而不考虑他们的位置
.                 选取当前节点
..                选取当前节点的父节点
@               选取属性
3、列子
 bookstore             选取bookstore节点的所有节点 
bookstore/book     选取bookstore节点下的所以book节点
//book                    选取所有的book节点,而不管它们在文档中的位置
bookstore//book    选取bookstore节点下的所有book节点
//@lang                  选取属性为lang的节点
3、谓语
/bookstore/book[1]                               选取bookstore下的第一个book节点
/bookstore/book[last()]                         选取bookstore节点下的最后一个book节点
/bookstore/book[position()<3]              选取bookstore节点下的第一和第二个节点
//title[@lang]                                         选取属性为lang的所有title节点
//title[@lang='eng']                               选取属性为lang并且值为eng的所以title节点
/bookstore/book[price<32.00]              选取bookstore下的price<32.00的book节点
/bookstore/book[price>30.00]/title       选取bookstore下的book的price>30.00的title节点
4选取未知节点
*               匹配任何元素节点
@*            匹配任何属性节点
node()      匹配任何类型的节点
5列子
/bookstore/*               选取bookstore元素的所以子元素
//*                               选取文档中的所有元素
//title[@*]                   选取所有带有属性的title元素
6、选取若干路径
//book/title|//book/price              选取 book 元素的所有 title 和 price 元素。
//title|//price
/bookstore/book/title|//price
7、XPath 轴
ancestor                                 选取当前节点的所以先辈节点
ancestor-or-self                     选取当前节点的所有先辈节点及该节点
attribute                                选取当前节点的所以属性
child                                       选取当前节点的所有子元素
descendant                           选取当前节点的所以后代元素
descendant-or-self                选取当前节点的所有后代元素(子、孙等)以及当前节点本身。
following                                选取文档中当前节点的结束标签之后的所有节点。
preceding                              选取文档中当前节点的开始标签之前的所有节点。
self                                         选取当前节点
8 、步的语法:
轴名称::节点测试[谓语]
9、例子
child::book                           选取所有属于当前节点的子元素的book节点
attibute::lang                       选取当前节点的lang属性
child::*                                 选取当前节点的所有子节点
attibute::*                            选取当前节点的所以属性
child::text()                           选取当前节点所有文本子节点
child::node()                         选取当前节点的所有子几点
descendant::book                选取当前节点的所有book先辈
ancestor::book                     选取当前节点的所有book父节点
ancestor-or-self::book     
child::*/child::price               选取当前节点的所有孙price节点
10、xpath运算符
预算符             描述              实例                      返回值
|            计算两个节点集    //book|//cd               返回所有拥有 book 和 cd 元素的节点集
+                  加法              5+4                       9
-                   减法              2-1                       1
*                  乘法              2*4                       8
div               除法              8div4                     2
=                 等于              price=9.80                如果 price 是 9.80,则返回 true。如果 price 是 9.90
!=
<
<=
>
>=
or                或           price=9.80 or price=9.50  如果 price 是 9.80,则返回 true。如果 price 是 9.60,则返回 false。
and               与                price>9.00 and price<9.90
mod     计算除法的余数     5 mod 2

三、小结一下

       xpath最大的好处就是可以很容易的从xml文档中提取出所需要的信息,不需要使用for循环从头遍历,要使用xpath语句,必须先创建httpRequest对象,就像ajax一样,缺点就是在不同的浏览器中,有写语法得不到想要的结果,具体的实例见附近。

Python之Xpath爬虫基础解析 在爬虫中,数据解析方法有很多中,比如正则表达式、bs4、Xpath、pyquery等,这个专栏所涉及到的爬虫主要以Xpath为主。 Xpath解析:最常用且最便捷高效的一种解析方式,通用性强。 1. Xpath解析原理 (1)实例化一个etree对象,且需要将被解析的页面源码数据加载到该对象中; (2)调用etree对象中的Xpath方法结合Xpath表达式实现标签的定位和内容的获取。 2. 环境的安装 pip install lxml 3. 实例化一个etree对象(两种情况:本地与网站) 阅读详情

相关推荐

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

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

郝开的博客 1636

3、scrapy——xpath语法

XPath 是一门在 XML 文档中查找信息的语言。XPath 用于在 XML 文档中通过元素和属性进行导航。         XPath 含有超过 100 个内建的函数。这些函数用于字符串值、数值、日期和时间比较、节点和 QName 处理、序列处理、逻辑值等等。         XPath 是 W3C 标准,XPath 于 1999 年 11 月 16 日 成为 W3C 标准。XPath 被

badman250的专栏 3万+

用Python实现单层感知器:5分钟搞定逻辑与/或/异或分类(附避坑指南)

本文通过Python代码实战,详细讲解了单层感知器的核心原理与实现步骤,5分钟内即可完成逻辑与、或运算的分类任务。文章深入剖析了单层感知器的能力边界,解释了其无法解决异或(XOR)等线性不可分问题的根本原因,并提供了学习率设置、权重初始化等关键避坑指南,帮助初学者直观理解神经网络的基础。

ttt77的博客 1088

Python爬虫篇:爬虫笔记合集

学习爬虫你完全可以理解为找辣条君借钱(借100万),首先如果想找辣条借钱那首先需要知道我的居住地址,然后想办法去到辣条的所在的(可以走路可以坐车),然后辣条身上的东西比较多,有100万,打火机,烟,手机衣服,需要从这些东西里面筛选出你需要的东西,拿到你想要的东西之后我们就可以去存钱,我们通过一个图片来理解爬虫的运行流程: 爬虫的流程至关重要,要是能把这个流程搞定那么爬虫的过程在你的脑海里就有基本的认知,可以说你的爬虫就已经学会20%了 首先我们先来认识所谓的网址,网址的高端叫法叫做‘统一资源定位符’,在互

web15286201346的博客 1110

DeepSeek-OCR又更新:一起看下OCR1和OCR2

DeepSeek-AI 最近又又开源了,这次是DeepSeek-OCR2,结合之前发布的DeepSeek-OCR ,可以发现DeepSeek走出了一条不同于主流 OCR 方案的技术路线。第一代模型探索了**“视觉作为文本压缩介质”的可行性,打破了传统的序列长度限制;第二代模型则通过“Visual Causal Flow(视觉因果流)”**架构,将因果推理引入视觉编码器,解决了复杂排版下的阅读顺序难题。本文将从架构设计、逻辑结构、训练范式及工程实现四个维度,深度剖析这两代模型的异同与创新。

kakaZhui的博客 626

第7.1章:StarRocks性能调优——查询分析

第7.1章:StarRocks性能调优——查询分析

爱吃辣条的博客 6476

[Xpath] Xpath基础知识

本文主要讲解Xpath相关知识点

Hudas的博客 4907

扣子工作流实战演练

例如,你可以在代码节点的输入中引用大模型节点的输出,这样代码节点就可以使用大模型节点的输出。扣子的工作流节点并不是固定的,而是由一系列可以任意添加的节点组成的,每个节点都有其特定的功能和用途。扣子工作流中常见的节点类型如图4-2所示。在图像生成节点中设置模型为人像,输入参数名为input,变量值引用开始节点的renwu,正向提示词为{{input}},如图4-19所示。然后添加两个节点,选择“图像生成”和“画板”,将“开始”节点、“图像生成”节点、“画板”节点、“结束”节点依次串联,如图4-17所示。

夏天又到了的专栏 1587

Xpath基础

1.什么是xpath XPath是一门在XML文档中查找信息的语言 2.xpath中的节点关系 例子: <bookstore> <book> <title>HarryPotter</title> <author>JK.Rowling</author> <year>2022</year> <price>1&lt...

wahgy的博客 4141

YOLO11-Seg优化:卷积变体系列篇 | 动态蛇形卷积(Dynamic Snake Convolution) | ICCV2023

动态蛇形卷积(Dynamic Snake Convolution),增强微小特征提取能力,引入到YOLO11-Seg,与C3k2结合实现二次创新

会AI的学姐 373

中国工商银行企业架构建设实践最全总结

中国工商银行参考IBM持续价值创新方法并吸收TOGAF等主流企业架构的框架理念,结合业务实际情况形成工行自己的企业架构方法论并实践,为数字化转型提供支撑。本案例通过介绍中国工商银行企业架构之业务架构设计方法,为其他银行企业架构建设提供参考。 企业架构是数字化转型的抓手,可以帮助企业规划、管理和实施数字化解决方案,以实现业务目标并适应不断变化的市场条件。中国工商银行通过战略目标指导业务架构的规划和设计,业务架构建模后指导IT架构建模。

银行信息系统应用架构详解 2733

Xpath语法基础

XPath 使用路径表达式在 XML 文档中进行导航XPath 包含一个标准函数库XPath 是 XSLT 中的主要元素XPath 是一个 W3C 标准XPath 使用路径表达式来选取 XML 文档中的节点或者节点集。XPath 含有超过 100 个内建的函数。这些函数用于字符串值、数值、日期和时间比较、节点和 QName 处理、序列处理、逻辑值等等。关于这些函数,可参考网站文章XPath、XQuery 以及 XSLT 函数 | 菜鸟教程 (runoob.com)

梅花香自苦寒来,宝剑锋从磨砺出。 3638

风电功率预测 | 基于RF随机森林的风电功率预测(附matlab完整源码)

风电功率预测 | 基于RF随机森林的风电功率预测(附matlab完整源码)

天天酷科研的博客 897

Python爬虫 xpath解析基础

今天继续给大家介绍Python爬虫相关知识,本文主要内容是Python爬虫 xpath解析基础。 一、xpath简介 二、xpath简单使用 三、xpath表达式 (一)xpath表达式层级递进关系表示 (二)xpath表达式标签属性定位和索引定位 (三)xpath表达式获取标签文本和属性 四、xpath解析示例 五、通过浏览器获得xpath表达式

永远是少年 8238

Claude Code本地Windows安装教程

本文介绍了在Windows系统上安装和配置Claude Code本地调用的详细步骤。首先需要确保网络畅通和账号余额充足,然后安装Node.js v22版本作为基础环境。接着通过npm全局安装Claude Code包,并进行版本验证。安装完成后,使用命令行登录并可以指定模型启动。最后还提供了切换API秘钥的方法,通过setup-token命令重新授权账号。整个过程配有详细的命令行示例和操作截图,方便用户按步骤完成安装配置。

猿小白的博客 2万+

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

xpath基础用法即xpath helper用法

使用xpath的好处 名称 速度 效率 难度 bs4 慢 低 简单,适合初学者 xpath 较快 中 一般 正则 快 高 难度高,时常让人头疼 基础用法 表达式 描述 用法 说明 nodename 选取此节点下的所有子节点 div 选取div标签下的所有标签,(比如 <li> <a> 等标签里的所有内容) // 从全局节点...

weixin_45846840的博客 7967

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Xpath的基础语法

前言 这一章节主要讲解Xpath的基础语法,学习如何通过Xpath获取网页中我们想要的内容;为我们的后面学习Java网络爬虫基础准备工作。 备注:此章节为基础核心章节,未来会在网络爬虫的数据解析环节经常使用,学会Xpath解析语法,可为未来爬虫解析省去很多麻烦。 Xpath简介 XPath即为XML路径语言,它是一种用来确定XML(标准通用标记语言的子集)文档中某部分位...

dss875914213的博客 331

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

基础爬虫与xpath

1.基础爬虫 import request #请求头信息 headers={'User-Agent':''} #代码向服务器发送get请求,get是发送请求的方式,post response=request.get(url='',headers=headers) #将内容写入文件 with open('') as f: f.write(response.content) 2.Xpath的基本使用 简介:Xpath是一门在XML文档中查找信息的语言,使用路径表达式来选取XML文档中的节点或者节点集,速度较

加油小白的博客 169

python中xpath用法_Python中的xpath基础使用

前言:XPath 是一门在 XML 文档中查找信息的语言。XPath 用于在 XML 文档中通过元素和属性进行导航。XPath 含有超过 100 个内建的函数。这些函数用于字符串值、数值、日期和时间比较、节点和 QName 处理、序列处理、逻辑值等等。XPath 是 W3C 标准,XPath 于 1999 年 11 月 16 日 成为 W3C 标准。XPath 被设计为供 XSLT、XPointe...

weixin_39865625的博客 1470

【XML---xpath】0基础xpath学习笔记

xpath是一门在xml文档中查找信息的语言。 xpath使用路径表达式 / xpath语法 表达式 描述 节点名称 选取此节点下的所有子节点 / 从根节点选取 // 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。 . 选取当前节点 … 选取当前节点的父节点 @ 选取属性 ----------------如下举例----------------------- bookstore 选取 bookstore 元素的所有子节点 /books

77今天也学习了的博客 230

网络爬虫基础-Xpath语法(一)

前言这一章节主要讲解Xpath的基础语法,学习如何通过Xpath获取网页中我们想要的内容;为我们的后面学习Java网络爬虫基础准备工作。备注:此章节为基础核心章节,未来会在网络爬虫的数据解析环节经常使用,学会Xpath解析语法,可为未来爬虫解析省去很多麻烦。Xpath简介       XPath即为XML路径语言,它是一种用来确定XML(标准通用标记语言的子集)文档中某部分位置的语言。XPath基...

weixin_39650971的博客 421

3-7 xpath基础语法

3-7 xpath基础语法 https://www.kuaidaili.com/doc/using/win10/ 百度搜索一下 xpath http://www.ruiwen.com/wenxue/wangzengqi/58200.html /div //div //div[@class='download_card_title'] ...

huanglianggu的专栏 140

xpath基础使用

【代码】xpath基础使用。

weixin_44201223的博客 426

java爬虫xpath_Xpath语法-网络爬虫基础

前言这一章节主要讲解Xpath的基础语法,学习如何通过Xpath获取网页中我们想要的内容;为我们的后面学习Java网络爬虫基础准备工作。备注:此章节为基础核心章节,未来会在网络爬虫的数据解析环节经常使用,学会Xpath解析语法,可为未来爬虫解析省去很多麻烦。Xpath简介XPath即为XML路径语言,它是一种用来确定XML(标准通用标记语言的子集)文档中某部分位置的语言。XPath基于XML的树状...

weixin_39797912的博客 147
上一篇: Java反射机制
下一篇: struts2学习之入门
Champion_netjava
博客等级 码龄16年 10粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值