当前位置:首页 > Python > 正文

Python中使用xml.dom.minidom解析XML(零基础入门教程)

在日常开发中,我们经常需要处理结构化数据,而XML(可扩展标记语言)就是一种常见的格式。Python 提供了多种解析 XML 的方式,其中 xml.dom.minidom 是标准库中的一个轻量级 DOM(文档对象模型)实现,非常适合初学者学习和使用。

本文将带你从零开始,手把手教你如何使用 xml.dom.minidom 库读取、解析、修改和生成 XML 文件。无论你是编程小白还是有一定经验的开发者,都能轻松上手!

Python中使用xml.dom.minidom解析XML(零基础入门教程) Python XML解析  xml.dom.minidom教程 Python处理XML数据 DOM操作XML 第1张

什么是 xml.dom.minidom?

xml.dom.minidom 是 Python 标准库 xml.dom 模块的一部分,它提供了一个简化版的 DOM 接口,用于解析和操作 XML 文档。DOM 将整个 XML 文档加载到内存中,并以树形结构表示,便于遍历和修改。

安装与导入

由于 xml.dom.minidom 是 Python 内置模块,因此无需额外安装,只需在代码开头导入即可:

from xml.dom import minidom  

1. 读取并解析 XML 文件

假设我们有一个名为 books.xml 的文件,内容如下:

<?xml version="1.0" encoding="UTF-8"?><library>    <book id="1">        <title>Python编程入门</title>        <author>张三</author>        <price>59.9</price>    </book>    <book id="2">        <title>数据分析实战</title>        <author>李四</author>        <price>79.0</price>    </book></library>  

我们可以使用以下代码读取并解析它:

from xml.dom import minidom# 解析 XML 文件doc = minidom.parse('books.xml')# 获取根元素root = doc.documentElementprint(f"根节点名称: {root.nodeName}")  

2. 遍历 XML 节点

我们可以使用 getElementsByTagName() 方法查找特定标签:

# 获取所有 book 节点books = doc.getElementsByTagName('book')for book in books:    book_id = book.getAttribute('id')    title = book.getElementsByTagName('title')[0].firstChild.data    author = book.getElementsByTagName('author')[0].firstChild.data    price = book.getElementsByTagName('price')[0].firstChild.data        print(f"ID: {book_id}, 书名: {title}, 作者: {author}, 价格: {price}")  

输出结果:

ID: 1, 书名: Python编程入门, 作者: 张三, 价格: 59.9ID: 2, 书名: 数据分析实战, 作者: 李四, 价格: 79.0  

3. 创建新的 XML 文档

你也可以用 minidom 动态创建 XML:

from xml.dom import minidom# 创建文档对象doc = minidom.Document()# 创建根节点root = doc.createElement('students')doc.appendChild(root)# 创建子节点student = doc.createElement('student')student.setAttribute('id', '101')name = doc.createElement('name')name_text = doc.createTextNode('王五')name.appendChild(name_text)student.appendChild(name)root.appendChild(student)# 输出格式化后的 XML 字符串xml_str = doc.toprettyxml(indent="  ")print(xml_str)  

4. 保存 XML 到文件

将生成的 XML 写入文件:

with open('output.xml', 'w', encoding='utf-8') as f:    f.write(xml_str)  

注意事项与常见问题

  • 使用 firstChild.data 获取文本内容时,要确保节点确实包含文本,否则可能报错。
  • minidom 适合小型 XML 文件;对于大型文件,建议使用 xml.saxlxml 等流式解析器。
  • 生成的 XML 默认包含多余的空白行,可通过字符串处理优化。

总结

通过本教程,你已经掌握了如何使用 Python XML解析 工具 xml.dom.minidom 来读取、遍历、创建和保存 XML 数据。这是处理配置文件、API 响应或数据交换格式的基础技能。

记住我们的四个核心关键词:Python XML解析xml.dom.minidom教程Python处理XML数据DOM操作XML。掌握这些,你就能轻松应对大多数 XML 相关任务!

现在,打开你的 Python 编辑器,动手试试吧!实践是最好的老师。