Python读取XML文件

一、XML文件

XML(Extensible Markup Language)可扩展标记语言,是一种用于存储数据的标记语言…

XML 文件通常存在于 Web 应用程序中,是因为 XML 文件对于通过网络发送和接收信息非常方便。XML 可以用来描述结构化信息,同时也非常适合通过网络进行信息传输。

在 Python 中,可以使用 xml.etree.ElementTree 模块来解析 XML 文件。

二、解析XML文件

1. 读取XML文件

在 Python 中,可以使用ElementTree 模块的 parse 将 XML 文件转换成 ElementTree 对象。

import xml.etree.ElementTree as ET

tree = ET.parse('example.xml')
root = tree.getroot()

2. 遍历XML文件

遍历 ElementTree 对象的两种方式:迭代和递归。

2.1 迭代方法

可以使用root.iter()方法来遍历XML文件中的所有元素。

for elem in root.iter():
    print(elem.tag, elem.attrib)

2.2 递归方法

还可以使用递归方法来遍历XML文件中的所有元素,通过执行elem.getchildren()和elem.getiterator()方法来遍历当前元素的所有子元素。

def traverse(node):
    if len(node) == 0:
        print(node.tag, node.attrib)
    else:
        print(node.tag, node.attrib)
        for child in node.getchildren():
            traverse(child)

traverse(root)

3. 查找XML文件中的元素

可以使用root.findall()方法或root.find()来查找指定元素。

3.1 findall()方法

root.findall()方法返回一个包含所有匹配元素的 list。

for elem in root.findall('country'):
    rank = elem.find('rank').text
    name = elem.get('name')
    print(name, rank)

3.2 find()方法

root.find()方法返回与查询条件匹配的第一个元素。

year = root.find("./year")
print(year.text)

三、修改XML文件

1. 添加元素

可以使用ElementTree的Element对象的subelement()方法来添加元素。

new_element = ET.Element("new_element", attrib={"name": "example"})
root.append(new_element)

2. 修改元素

可以使用Element对象的text属性和set()方法来修改元素的值。

year = root.find("./year")
year.text = "2015"
year.set("updated", "yes")

3. 删除元素

可以使用Element对象的remove()方法来删除元素。

country = root.find("./country[@name='Panama']")
root.remove(country)

四、总结

在 Python 中,使用ElementTree 模块解析和修改 XML 文件非常方便。可以使用迭代和递归两种方法遍历 XML 文件中的所有元素,也可以使用 find() 和 findall() 方法查找指定元素,同时也可以使用 subelement()、text 属性、set() 方法和 remove() 方法来操作 XML 文件。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/237071.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝的头像小蓝
上一篇 2024-12-12 12:03
下一篇 2024-12-12 12:03

相关推荐

  • Python列表中负数的个数

    Python列表是一个有序的集合,可以存储多个不同类型的元素。而负数是指小于0的整数。在Python列表中,我们想要找到负数的个数,可以通过以下几个方面进行实现。 一、使用循环遍历…

    编程 2025-04-29
  • Python计算阳历日期对应周几

    本文介绍如何通过Python计算任意阳历日期对应周几。 一、获取日期 获取日期可以通过Python内置的模块datetime实现,示例代码如下: from datetime imp…

    编程 2025-04-29
  • Python中引入上一级目录中函数

    Python中经常需要调用其他文件夹中的模块或函数,其中一个常见的操作是引入上一级目录中的函数。在此,我们将从多个角度详细解释如何在Python中引入上一级目录的函数。 一、加入环…

    编程 2025-04-29
  • Python周杰伦代码用法介绍

    本文将从多个方面对Python周杰伦代码进行详细的阐述。 一、代码介绍 from urllib.request import urlopen from bs4 import Bea…

    编程 2025-04-29
  • 如何查看Anaconda中Python路径

    对Anaconda中Python路径即conda环境的查看进行详细的阐述。 一、使用命令行查看 1、在Windows系统中,可以使用命令提示符(cmd)或者Anaconda Pro…

    编程 2025-04-29
  • Python字典去重复工具

    使用Python语言编写字典去重复工具,可帮助用户快速去重复。 一、字典去重复工具的需求 在使用Python编写程序时,我们经常需要处理数据文件,其中包含了大量的重复数据。为了方便…

    编程 2025-04-29
  • Python程序需要编译才能执行

    Python 被广泛应用于数据分析、人工智能、科学计算等领域,它的灵活性和简单易学的性质使得越来越多的人喜欢使用 Python 进行编程。然而,在 Python 中程序执行的方式不…

    编程 2025-04-29
  • 蝴蝶优化算法Python版

    蝴蝶优化算法是一种基于仿生学的优化算法,模仿自然界中的蝴蝶进行搜索。它可以应用于多个领域的优化问题,包括数学优化、工程问题、机器学习等。本文将从多个方面对蝴蝶优化算法Python版…

    编程 2025-04-29
  • Python清华镜像下载

    Python清华镜像是一个高质量的Python开发资源镜像站,提供了Python及其相关的开发工具、框架和文档的下载服务。本文将从以下几个方面对Python清华镜像下载进行详细的阐…

    编程 2025-04-29
  • python强行终止程序快捷键

    本文将从多个方面对python强行终止程序快捷键进行详细阐述,并提供相应代码示例。 一、Ctrl+C快捷键 Ctrl+C快捷键是在终端中经常用来强行终止运行的程序。当你在终端中运行…

    编程 2025-04-29

发表回复

登录后才能评论