使用Python的xml.etree.ElementTree模块解析和操作 XML 数据

Date: 2025.01.04 17:30:45 author: lijianzhan

简述:xml.etree.ElementTree 是 Python 标准库的一部分,而且是 Python 标准库中用于解析和操作 XML 数据的模块,因此不需要通过 pip install 安装。只要你安装了 Python(无论是 Python 2.x 还是 Python 3.x),就可以直接使用xml.etree.ElementTree 。它提供了一种简单而高效的方式来处理 XML 文件,支持解析、创建、修改和查询 XML 数据。

  1. 引入xml.etree.ElementTree模块
import xml.etree.ElementTree as ET
print(ET.__version__)  # 打印版本信息
  1. xml.etree.ElementTree 的详细介绍,ElementTree 基本概念: Element:表示 XML 中的一个节点,包含标签(tag),属性(attrib)和子节点(children),ElementTree:表示整个 XML 文档的树结构。
    知道基本概念后,可以使用内部方法解析XML。代码示例如下:
#解析 XML
1.从文件解析
import xml.etree.ElementTree as ET# 解析 XML 文件
tree = ET.parse('data.xml')
root = tree.getroot()  # 获取根元素
2.从字符串解析
xml_data = '''
<root><child id="1">Text1</child><child id="2">Text2</child>
</root>
'''
root = ET.fromstring(xml_data)  # 从字符串解析
  1. 获取XML格式数据并遍历节点代码如下:
xml_content = res.text # 获取响应数据
root = ET.fromstring(xml_content)# 解析 XML# 遍历所有的 game 元素
for game in root.findall('game'):
  1. 完整的从请求http接口,获取XML数据并解析得到数据的脚步实例,代码如下:
import time
import requests
from time import sleep
import xml.etree.ElementTree as ETclass GetM061Com:def getLogin(self, username, password):print("登录模块")url = 'http://www.baidu.com?mode=login'headers = {'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Mobile/15E148 Safari/604.1'}data = {'mode': 'login','username': username,'password': password,}res = requests.post(url, headers=headers, data=data)if res.status_code == 200:xml_content = res.text # 获取响应数据root = ET.fromstring(xml_content) # 解析XML数据return root.find('uid').textdef getIndex(self, uid):print("首页模块")if not uid:print("未获取到有效的 uid")return# 获取当前的秒级时间戳current_time_s = time.time()# 将秒级时间戳转换为毫秒级时间戳current_time_ms = int(current_time_s * 1000)sleep(3)url = 'http://www.baidu.com?mode=index'headers = {'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Mobile/15E148 Safari/604.1'}data = {'uid': uid,'mode': 'home','ts': current_time_ms}res = requests.post(url, headers=headers, data=data)if res.status_code == 200:xml_content = res.text # 获取响应数据root = ET.fromstring(xml_content)# 解析 XML# 遍历所有的 game 元素for game in root.findall('game'):game_id = game.get('id')gtype = game.find('gtype').textif gtype == 'football':print("-足球")print("game_id:" + game_id)elif gtype == 'basketball':print("-篮球")print("game_id:" + game_id)if __name__ == '__main__':username = ''# 账号password = ''# 密码uid = GetM061Com().getLogin(username, password)GetM061Com().getIndex(uid)
  1. 总结
    xml.etree.ElementTree 是处理 XML 数据的强大工具,适合解析、修改和生成 XML 文件。它的接口简单易用,能够满足大多数 XML 处理需求。如果你有更复杂的需求(如命名空间处理),可以考虑使用 lxml 库,它提供了更强大的功能和更好的性能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/66136.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一文讲清楚HTTP常见的请求头和应用

文章目录 一文讲清楚HTTP常见的请求头和应用1. 啥是个HTTP请求头2. 常见的请求头&#xff0c;作用和示例3.协商缓存4.会话状态 一文讲清楚HTTP常见的请求头和应用 1. 啥是个HTTP请求头 一句话&#xff0c;说白了就是限定HTTP传输的一些规则参数&#xff0c;比如Accept&#xf…

Unity3D ILRuntime开发原则与接口绑定详解

引言 ILRuntime是一款基于C#的热更新框架&#xff0c;使用IL2CPP技术将C#代码转换成C代码&#xff0c;支持动态编译和执行代码&#xff0c;适用于Unity3D的所有平台&#xff0c;包括Android、iOS、Windows、Mac等。本文将详细介绍ILRuntime在Unity3D中的开发原则及接口绑定技术…

Wend看源码-Java-Executor异步执行器学习

摘要 本文主要介绍了Java.util.concurrent包所提供的 Executor 异步执行器框架&#xff0c;涵盖了相关的接口和类。 并发执行器类图 图1 java 并发执行器相关类图 Executor 接口 Executor 接口提供了一种将任务的提交与任务的实际执行机制分离开来的方法。它只有一个方法 exe…

道可云人工智能元宇宙每日资讯|崂山区政务服务虚拟大厅启用

道可云元宇宙每日简报&#xff08;2024年12月31日&#xff09;讯&#xff0c;今日元宇宙新鲜事有&#xff1a; 崂山区政务服务虚拟大厅启用 近日&#xff0c;崂山区政务服务“虚拟大厅”在青岛正式上线&#xff0c;成为该市首个采用虚拟现实、人工智能、大数据及3D虚拟数字人…

Tailwind CSS 实战:社交媒体信息流开发

在社交媒体的世界里&#xff0c;信息流就像是一条永不停歇的河流&#xff0c;承载着用户的分享与互动。记得在一个社交平台项目中&#xff0c;我们通过重新设计信息流的展示方式&#xff0c;让用户的平均浏览时长提升了 45%。今天&#xff0c;我想和大家分享如何使用 Tailwind …

单片机-独立按键矩阵按键实验

1、按键介绍 按键管脚两端距离长的表示默认是导通状态&#xff0c;距离短的默认是断开状态&#xff0c; 如果按键按下&#xff0c;初始导通状态变为断开&#xff0c;初始断开状态变为导通 我们开发板是采用软件消抖&#xff0c;一般来说一个简单的按键消抖就是先读取按键的状…

在arm平台Euler系统上编译安装ffmpeg

问题背景 arm平台上&#xff0c;fmpeg不一定能用yum install轻松安装&#xff0c;可能要编译安装。 环境配置 以下是我的版本配置&#xff0c;读者可以下载同版本的tag分支&#xff0c;以便复现。 ffmpeg version 5.1.2 Copyright (c) 2000-2022 the FFmpeg developersbuil…

DCGAN模型详解

模型背景 在深度学习领域迅速发展的背景下,生成对抗网络(GAN)作为一种革命性的生成模型应运而生。 Ian Goodfellow等人于2014年首次提出GAN概念 ,开创了生成模型的新纪元。这一创新源于对深度学习在图像生成方面潜力的探索,旨在解决非监督学习中的关键问题:如何让机器创造…

Elasticsearch: 高级搜索

这里写目录标题 一、match_all匹配所有文档1、介绍&#xff1a; 二、精确匹配1、term单字段精确匹配查询2、terms多字段精确匹配3、range范围查询4、exists是否存在查询5、ids根据一组id查询6、prefix前缀匹配7、wildcard通配符匹配8、fuzzy支持编辑距离的模糊查询9、regexp正则…

HTML5实现喜庆的新年快乐网页源码

HTML5实现喜庆的新年快乐网页源码 前言一、设计来源1.1 主界面1.2 关于新年界面1.3 新年庆祝活动界面1.4 新年活动组织界面1.5 新年祝福订阅界面1.6 联系我们界面 二、效果和源码2.1 动态效果2.2 源代码 源码下载结束语 HTML5实现喜庆的新年快乐网页源码&#xff0c;春节新年网…

LeetCode热题100-两数之和【JavaScript讲解】

题目: 根据题目想思路&#xff1a; 使用哈希表进行索引查找。利用nums[j] target - nums[i]获得我们需要的值&#xff0c;在数组中进行查询。查询成功后返回这两个下标&#xff1b;否则当前元素的值和索引存储到哈希表中&#xff0c;以便后续查找。 题解&#xff1a; /*** …

沙箱模拟支付宝支付3--支付的实现

1 支付流程实现 演示案例 主要参考程序员青戈的视频【支付宝沙箱支付快速集成版】支付宝沙箱支付快速集成版_哔哩哔哩_bilibili 对应的源码在 alipay-demo: 使用支付宝沙箱实现支付功能 - Gitee.com 以下是完整的实现步骤 1.首先导入相关的依赖 <?xml version"1…

250103-逻辑运算符

1. 逻辑与运算符 && 2. 逻辑非运算符 &#xff01; 实例 if(!(p1.agep2.age&&p1.name.equals(p2.name)))

NLP CH3复习

CH3 3.1 几种损失函数 3.2 激活函数性质 3.3 哪几种激活函数会发生梯度消失 3.4 为什么会梯度消失 3.5 如何解决梯度消失和过拟合 3.6 梯度下降的区别 3.6.1 梯度下降&#xff08;GD&#xff09; 全批量&#xff1a;在每次迭代中使用全部数据来计算损失函数的梯度。计算成本…

探索 AIGC 的基础知识:人工智能生成内容的全景视图

在数字化时代&#xff0c;人工智能生成内容&#xff08;AIGC&#xff09;正以前所未有的速度改变着我们的创作方式。本文将深入探讨 AIGC 的定义、构成要素、应用场景以及其带来的优势&#xff0c;帮助读者全面理解这一前沿技术。 1. AIGC 的定义与范围 人工智能生成内容&…

【办公类-47-02】20250103 课题资料快速打印(单个docx转PDF,多个pdf合并一个PDF 打印)

背景需求&#xff1a; 2023区级大课题《运用Python优化3-6岁幼儿学习活动材料的实践研究》需要做阶段资料 本来应该2024年6月就提交电子稿和打印稿。可是python学具的教学实验实在太多了&#xff0c;不断生成&#xff0c;我忙着做教学&#xff0c;都没有精力去整理。 2025年…

Android布局layout的draw简洁clipPath实现圆角矩形布局,Kotlin

Android布局layout的draw简洁clipPath实现圆角矩形布局&#xff0c;Kotlin 通常&#xff0c;如果要把一个相对布局&#xff0c;FrameLayout&#xff0c;或者线性布局等这样的布局变成具有圆角或者圆形的布局&#xff0c;需要增加一个style&#xff0c;给它设置圆角&#xff0c;…

Uniapp中使用`wxml-to-canvas`开发DOM生成图片功能

Uniapp中使用wxml-to-canvas开发DOM生成图片功能 在移动端开发中&#xff0c;生成图片是一个常见需求&#xff0c;例如用于分享海报、生成动态二维码等。在Uniapp框架中&#xff0c;我们可以通过wxml-to-canvas插件轻松实现将DOM转化为图片的功能。本文将详细介绍如何在Uniapp…

深入Android架构(从线程到AIDL)_08 认识Android的主线程

目录 3、 认识Android的主线程(又称UI线程) 复习&#xff1a; 各进程(Process)里的主线程​编辑 UI线程的责任&#xff1a; 迅速处理UI事件 举例 3、 认识Android的主线程(又称UI线程) 复习&#xff1a; 各进程(Process)里的主线程 UI线程的责任&#xff1a; 迅速处理UI事…

基于PHP的智能健康管理系统设计与实现

基于PHP的智能健康管理系统设计与实现 一、引言 随着人们生活水平的提高和健康意识的增强&#xff0c;健康管理逐渐成为人们关注的焦点。传统的健康管理方式已经无法满足人们对个性化、智能化健康管理的需求。因此&#xff0c;基于PHP的智能健康管理系统应运而生。本文将介绍基…