用xml.dom.minidom创建XML需先创建Document对象,再用createElement生成元素、createTextNode封装文本、setAttribute设置属性,最后用toprettyxml实现缩进输出。

用 xml.dom.minidom 创建 XML,核心是先创建文档对象,再逐步构建元素、设置属性、添加文本内容,最后格式化输出。
创建空文档并添加根元素
所有操作都从 minidom.Document() 开始。它代表整个 XML 文档,后续节点都需通过它创建:
- 调用
doc.createElement("tagname")创建新元素节点 - 用
doc.appendChild(element)把元素加到文档中(通常是根节点) - 一个文档只能有一个直接子节点(即根元素),其他都挂在这之下
添加子元素和文本内容
子元素也是用 createElement 创建,然后用 appendChild 挂到父元素下。文本内容不能直接作为子节点,必须封装成 Text 节点:
- 用
doc.createTextNode("内容")创建文本节点 - 再把该文本节点
appendChild到目标元素中 - 例如:
name_elem.appendChild(doc.createTextNode("Alice"))
设置元素属性
属性不是子节点,而是附加在元素上的键值对,用 element.setAttribute("name", "value") 设置:
立即学习“Python免费学习笔记(深入)”;
- 支持字符串类型值,数字或布尔需先转为字符串
- 同一个元素可多次调用
setAttribute添加多个属性 - 不支持命名空间属性(如
xmlns:xsi),如需请换用xml.etree.ElementTree或lxml
生成带缩进的可读XML字符串
直接调用 doc.toxml() 输出的是单行无格式 XML。要美化输出,用 doc.toprettyxml(indent=" ", encoding="utf-8"):
-
indent指定缩进字符(如两个空格) -
encoding可选,设为"utf-8"时返回 bytes;若要 str,去掉该参数或设为None - 注意:
toprettyxml()默认会在开头插入空行,可用字符串处理去掉(如.replace("\n\n", "\n", 1))
基本上就这些。不复杂但容易忽略文本节点封装和缩进控制。










