Python 读写 XML 文件完整指南:生成与解析实例

纸上星河
纸上星河
发布时间:2026-10-14| 2人浏览过
原创

本文详细介绍如何使用 Python 标准库 xml.dom.minidom 进行 XML 文件的生成与读取。通过具体代码示例,演示如何创建带有属性的节点结构并写入文件,以及如何解析现有 XML 文件并提取特定标签的属性值。包含完整的生成与读取代码片段及运行结果分析,帮助开发者快速掌握 Python 处理 XML 数据的核心方法。

Python 读写 XML 概述

本文旨在详细解析使用 Python 进行 XML 文件读写的具体实现方法。我们将通过实际代码示例,展示如何生成结构化的 XML 文档以及如何从已有 XML 文件中提取所需数据。

Python 生成 XML 文件实现

在 Python 中生成 XML 文件,通常使用 xml.dom.minidom 模块。该模块提供了创建文档对象模型(DOM)的接口。首先,通过 getDOMImplementation 获取实现对象,随后利用 createDocument 方法创建一个新的 DOM 文档实例。接着,使用 createElement 方法创建根元素,例如命名为 'Pythons'。为了构建文档结构,代码遍历一个范围(此处为 0 到 9),在每次迭代中创建名为 'python' 的子元素。通过 setAttribute 方法为每个子元素添加 'id' 属性,其值由循环变量转换而来。随后,使用 appendChild 将子元素追加到根元素中,并将处理后的子元素数据打印输出。最后,将根元素追加到 DOM 对象,并打开一个名为 'test.xml' 的文件以追加模式写入。调用 writexml 方法,指定缩进为空格、换行符为 '\n',完成写入操作后关闭文件。


from xml.dom import minidom

# 生成XML文件方式
def generateXml():
  impl = minidom.getDOMImplementation()

  # 创建一个xml dom
  # 三个参数分别对应为 :namespaceURI, qualifiedName, doctype
  doc = impl.createDocument(None, None, None)

  # 创建根元素
  rootElement = doc.createElement('Pythons')

  # 为根元素添加10个子元素
  for pythonId in range(10):
    # 创建子元素
    childElement = doc.createElement('python')
    # 为子元素添加id属性
    childElement.setAttribute('id', str(pythonId))

    # 将子元素追加到根元素中
    rootElement.appendChild(childElement)
    print(childElement.firstChild.data)

  # 将拼接好的根元素追加到dom对象
    doc.appendChild(rootElement)

  # 打开test.xml文件 准备写入
  f = open('test.xml', 'a')
  # 写入文件
  doc.writexml(f, addindent=' ', newl='\n')
  # 关闭
  f.close()

# 执行生成xml方法
generateXml()

Python 读取 XML 文件实现

读取 XML 文件时,同样使用 xml.dom.minidom 模块,但主要依赖 parse 函数。该函数接收文件路径(如 'test.xml')并返回对应的文档对象。获取文档后,通过 getElementsByTagName 方法查找所有名为 'python' 的标签节点。遍历这些节点,利用 getAttribute 方法提取每个节点的 'id' 属性值,并将其打印输出,从而完成对 XML 文件中特定属性数据的读取与展示。


from xml.dom.minidom import parse

# 获取 python节点下得所有id属性
def getTagId():

  # 获取test.xml文档对象
  doc = parse("test.xml")

  for node in doc.getElementsByTagName("python"):
    # 获取标签ID属性
    value_str = node.getAttribute("id")
    # 打印输出
    print(value_str)

# 获取属性ID
getTagId()

生成 XML 的运行结果

执行生成 XML 文件的代码后,控制台会输出每个子元素的初始数据状态,同时在当前目录下生成一个名为 'test.xml' 的文件。该文件包含了按照代码逻辑生成的完整 XML 结构,根节点为 'Pythons',内部包含 10 个带有 'id' 属性的 'python' 子节点。

读取 XML 的运行结果

执行读取 XML 文件的代码后,控制台会依次打印出 'test.xml' 文件中每个 'python' 节点的 'id' 属性值。这些值对应生成阶段设置的 0 到 9 的整数,验证了文件写入与读取的一致性。

以上即为 Python 读写 XML 文件的完整实例详解。如果在操作过程中遇到任何问题,欢迎在评论区留言或前往社区进行交流讨论。本站提供了大量关于 Python 开发的其他技术文章,建议读者搜索查阅以获取更多知识。感谢阅读,希望本文能对大家有所帮助,感谢支持!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。