如何用python写xml

如何用python写xml

作者:William Gu发布时间:2026-01-05阅读时长:0 分钟阅读次数:12

用户关注问题

Q
Python中有哪些库可以用来生成XML文件?

我想用Python创建和处理XML文件,哪些库比较适合用来生成XML?

A

Python生成XML文件的常用库

Python中可以用来生成XML文件的库包括xml.etree.ElementTree、lxml以及minidom等。xml.etree.ElementTree是标准库,适合简单XML操作。lxml功能强大,支持XPath和XSLT,适合复杂XML处理。minidom提供了基于DOM的解析方式,操作较直观,适合有DOM相关经验的开发者。

Q
如何用ElementTree库创建一个简单的XML结构?

我想用Python的ElementTree库创建一个包含多个节点的XML文档,示例代码如何写?

A

使用ElementTree创建基本XML结构示例

可以通过ElementTree库的Element和SubElement类来创建节点,然后用ElementTree写出XML文件。示例:

import xml.etree.ElementTree as ET

root = ET.Element('root')
child1 = ET.SubElement(root, 'child')
child1.text = '内容'

tree = ET.ElementTree(root)
tree.write('output.xml', encoding='utf-8', xml_declaration=True)

这样就创建了带根节点和一个子节点的XML文件。

Q
使用Python写XML时如何保证生成的文件格式美观?

我用Python生成XML文件后想让内容层级分明、缩进整齐,该怎么处理?

A

Python生成漂亮XML文件的做法

可以借助minidom模块的toprettyxml方法对生成的XML字符串进行格式化。例如,先用ElementTree生成XML字符串,再用minidom解析并格式化输出。示例代码:

import xml.etree.ElementTree as ET
from xml.dom import minidom

root = ET.Element('root')
child = ET.SubElement(root, 'child')
child.text = '内容'

rough_string = ET.tostring(root, 'utf-8')
reparsed = minidom.parseString(rough_string)
pretty_xml = reparsed.toprettyxml(indent="  ")

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

这样可以让XML文件更易读。