用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") 设置:
setAttribute 添加多个属性xmlns:xsi),如需请换用 xml.etree.ElementTree 或 lxml
直接调用 doc.toxml() 输出的是单行无格式 XML。要美化输出,用 doc.toprettyxml(indent=" ", encoding="utf-8"):
indent 指定缩进字符(如两个空格)encoding 可选,设为 "utf-8" 时返回 bytes;若要 str,去掉该参数或设为 None
toprettyxml() 默认会在开头插入空行,可用字符串处理去掉(如 .replace("\n\n", "\n", 1))基本上就这些。不复杂但容易忽略文本节点封装和缩进控制。