在日常开发中,我们经常会遇到需要处理 XML(可扩展标记语言)格式的数据。无论是读取配置文件、解析API返回结果,还是处理遗留系统数据,Python XML解析能力都显得尤为重要。幸运的是,Python标准库自带了强大的 xml 模块,让我们无需安装第三方库即可轻松处理XML文档。

XML(eXtensible Markup Language)是一种用于存储和传输数据的标记语言。它具有良好的结构化特性,易于人类阅读和机器解析。一个典型的XML文档如下:
<?xml version="1.0" encoding="UTF-8"?><bookstore> <book id="1"> <title>Python编程从入门到实践</title> <author>Eric Matthes</author> <price>89.00</price> </book> <book id="2"> <title>流畅的Python</title> <author>Luciano Ramalho</author> <price>139.00</price> </book></bookstore>Python标准库提供了多个用于处理XML的子模块,其中最常用、最适合初学者的是 xml.etree.ElementTree(通常简称为 ElementTree 或 ET)。它轻量、高效,且API简洁明了,非常适合进行 Python处理XML数据 的任务。
其他子模块如 xml.dom 和 xml.sax 虽然功能强大,但使用复杂度较高,一般只在特定场景下使用。本文将聚焦于 ElementTree,带你从零开始掌握 xml模块教程 的核心内容。
首先,我们需要将XML数据加载到内存中。可以使用 ET.fromstring() 解析字符串,或使用 ET.parse() 解析文件。
import xml.etree.ElementTree as ET# 从字符串解析xml_str = '''<bookstore> <book id="1"> <title>Python编程从入门到实践</title> <author>Eric Matthes</author> </book></bookstore>'''root = ET.fromstring(xml_str)print(root.tag) # 输出: bookstore# 从文件解析(假设文件名为 books.xml)# tree = ET.parse('books.xml')# root = tree.getroot()获取根元素后,我们可以使用多种方式遍历子元素:
# 遍历所有直接子元素for child in root: print(child.tag, child.attrib) # 输出: book {'id': '1'}# 查找特定标签for title in root.iter('title'): print(title.text) # 输出: Python编程从入门到实践# 使用 find() 和 findall()book = root.find('book') # 找第一个 booktitles = book.findall('title') # 找 book 下的所有 titleElementTree 允许我们动态修改XML结构:
# 修改文本内容book.find('price').text = '99.00'# 添加新元素new_book = ET.SubElement(root, 'book', {'id': '3'})ET.SubElement(new_book, 'title').text = 'Python数据处理'ET.SubElement(new_book, 'author').text = '张三'# 删除元素root.remove(book) # 删除第一个 book 元素完成修改后,可以将XML写入文件:
# 写入文件(自动格式化)ET.indent(root) # Python 3.9+ 支持自动缩进tree = ET.ElementTree(root)tree.write('updated_books.xml', encoding='utf-8', xml_declaration=True)通过本教程,你已经掌握了使用Python内置 xml.etree.ElementTree 模块进行 Python XML解析 的基本方法。无论你是要读取配置、处理API响应,还是转换数据格式,这些技能都能派上用场。
记住,ElementTree使用 的关键在于理解“树形结构”:每个XML元素都是一个节点,可以有子节点、属性和文本内容。多加练习,你很快就能熟练操作XML数据!
希望这篇 xml模块教程 对你有所帮助。如果你有任何问题,欢迎在评论区留言交流!
本文由主机测评网于2025-12-18发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://vpshk.cn/2025129745.html