Python使用ElementTree生成XML文件的完整示例

陆遥
陆遥
发布时间:2026-10-13| 2人浏览过
原创

本文介绍如何利用Python标准库xml.etree.ElementTree模块创建XML文件。通过定义根节点、子节点及属性,并设置文本内容,最终写入指定文件。文中附带完整代码及在线XML处理工具推荐,适用于需要程序化生成结构化数据场景。

本文详细介绍在Python中生成XML文件的具体实现方法,供开发者参考使用。

以下示例基于ElementTree相关类库,演示如何构建并生成XML文件。

# *-* coding=utf-8
from xml.etree.ElementTree import ElementTree
from xml.etree.ElementTree import Element
from xml.etree.ElementTree import SubElement
from xml.etree.ElementTree import dump
from xml.etree.ElementTree import Comment
from xml.etree.ElementTree import tostring
import os
filename="book.xml"
def CreateXml():
  book =ElementTree()
  purOrder =Element("PurchaseOrder")
  book._setroot(purOrder)
  list = Element("account",{'idsn':'2390094'})
  purOrder.append(list)
  item = Element("item1",{"sku":"abcd","qty":"4"})
  SubElement(item,"Name").text="Potato Smasher"
  SubElement(item,"Description").text="Smash Potatoes like never before"
  purOrder.append(item)
  item = Element("item2",{"sku":"gfhi","qty":"40"})
  SubElement(item,"Name").text="Beijing"
  SubElement(item,"Description").text="My Country"
  purOrder.append(item)
  indent(purOrder)
  return book
def indent(elem,level=0):
  i ="\n"+level*"  "
  print elem;
  if len(elem):
    if not elem.text or not elem.text.strip():
      elem.text = i + "  "
    for e in elem:
      print e
      indent(e,level+1)
    if not e.tail or not e.tail.strip():
      e.tail =i
  if level and (not elem.tail or not elem.tail.strip()):
    elem.tail =i
  return elem
if __name__ == '__main__':
  book =CreateXml()
  book.write(filename,"utf-8")
  #book.write("book2.xml","utf-8",True) #true is with xml declaration

此外,推荐以下在线工具辅助XML数据处理:

在线XML与JSON格式互转工具: http://tools.jb51.net/code/xmljson

在线XML格式化与压缩工具: http://tools.jb51.net/code/xmlformat

XML在线压缩及格式化工具: http://tools.jb51.net/code/xml_format_compress

XML代码在线格式化与美化工具: http://tools.jb51.net/code/xmlcodeformat

如需了解更多Python相关知识,可参考本站专题:《Python操作xml数据技巧总结》、《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》。

希望上述内容对您的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 算法库。