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

 更新时间:2025年01月09日 10:59:35   作者:喜欢硬编码  
xml.etree.ElementTree是Python标准库中用于解析和操作XML数据的模块,无需安装,支持解析、创建、修改和查询XML数据,本文介绍如何使用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 数据。

引入xml.etree.ElementTree模块

import xml.etree.ElementTree as ET
print(ET.__version__)  # 打印版本信息

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)  # 从字符串解析

3获取XML格式数据并遍历节点代码如下:

xml_content = res.text # 获取响应数据
root = ET.fromstring(xml_content)# 解析 XML
# 遍历所有的 game 元素
for game in root.findall('game'):

4.完整的从请求http接口,获取XML数据并解析得到数据的脚步实例,代码如下:

import time
import requests
from time import sleep
import xml.etree.ElementTree as ET
class 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').text
    def 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').text
                if 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)

5.总结

xml.etree.ElementTree 是处理 XML 数据的强大工具,适合解析、修改和生成 XML 文件。它的接口简单易用,能够满足大多数 XML 处理需求。如果你有更复杂的需求(如命名空间处理),可以考虑使用 lxml 库,它提供了更强大的功能和更好的性能。

到此这篇关于使用Python的xml.etree.ElementTree模块解析和操作 XML 数据的文章就介绍到这了,更多相关Python xml.etree.ElementTree解析xml内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 浅析python中5个带key的内置函数

    浅析python中5个带key的内置函数

    这篇文章主要介绍了python中5个带key的内置函数,包括max取最大值函数,min取最小值函数,filter过滤函数,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07
  • 基于python求两个列表的并集.交集.差集

    基于python求两个列表的并集.交集.差集

    这篇文章主要介绍了基于python求两个列表的并集.交集.差集,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • Python Transformers库(NLP处理库)案例代码讲解

    Python Transformers库(NLP处理库)案例代码讲解

    本文介绍transformers 库的全面讲解,包含基础知识、高级用法、案例代码及学习路径,内容经过组织,适合不同阶段的学习者,对Python Transformers库相关知识感兴趣的朋友一起看看吧
    2025-04-04
  • Python类反射机制使用实例解析

    Python类反射机制使用实例解析

    这篇文章主要介绍了Python类反射机制使用实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • 超详细,教你用python语言实现QQ机器人制作教程

    超详细,教你用python语言实现QQ机器人制作教程

    这篇文章主要介绍了如何python语言实现QQ机器人,用图文详细的描述了其中的操作步骤,非常的简单易上手,有需要的朋友可以参考下
    2021-08-08
  • Python合并pdf文件的工具

    Python合并pdf文件的工具

    PDF文件合并工具是非常好用可以把多个pdf文件合并成一个,本文以5个pdf文件为例给大家分享具体操作方法,通过实例代码给大家介绍的非常详细,需要的朋友参考下吧
    2021-07-07
  • 通过实例解析Python调用json模块

    通过实例解析Python调用json模块

    这篇文章主要介绍了通过实例解析Python调用json模块,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • OpenCV中VideoCapture类的使用详解

    OpenCV中VideoCapture类的使用详解

    这篇文章主要介绍了OpenCV中VideoCapture类的使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • DJango的创建和使用详解(默认数据库sqlite3)

    DJango的创建和使用详解(默认数据库sqlite3)

    今天小编就为大家分享一篇DJango的创建和使用详解(默认数据库sqlite3),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • Python打包成.exe可执行文件的详细步骤

    Python打包成.exe可执行文件的详细步骤

    在Python中,可以使用一些工具将Python代码打包成可执行文件(.exe)以便在没有安装Python解释器的环境中运行,本文通过图文结合的方式给大家详细介绍了Python打包成.exe可执行文件的步骤,需要的朋友可以参考下
    2024-04-04

最新评论