Python 生成具有适当缩进的XML文件
我试图用python生成XML文件,但它没有缩进,输出是直线的Python 生成具有适当缩进的XML文件,python,xml,xml-parsing,xml.etree,Python,Xml,Xml Parsing,Xml.etree,我试图用python生成XML文件,但它没有缩进,输出是直线的 from xml.etree.ElementTree import Element, SubElement, Comment, tostring name = str(request.POST.get('name')) top = Element('scenario') environment = SubElement(top, 'environment') cluster = SubElement(top, 'c
from xml.etree.ElementTree import Element, SubElement, Comment, tostring
name = str(request.POST.get('name'))
top = Element('scenario')
environment = SubElement(top, 'environment')
cluster = SubElement(top, 'cluster')
cluster.text=name
我试图使用pretty解析器,但它给了我一个错误:“Element”对象没有属性“read”
import xml.dom.minidom
xml_p = xml.dom.minidom.parse(top)
pretty_xml = xml_p.toprettyxml()
给解析器的输入格式是否正确?如果这是错误的方法,请建议另一种缩进方法。您不能直接解析
元素()的top
,您需要将其设置为字符串(这就是为什么您应该导入当前未使用的tostring
),并在结果上使用xml.dom.minidom.parseString()
:
import xml.dom.minidom
xml_p = xml.dom.minidom.parseString(tostring(top))
pretty_xml = xml_p.toprettyxml()
print(pretty_xml)
这就产生了:
<?xml version="1.0" ?>
<scenario>
<environment/>
<cluster>xyz</cluster>
</scenario>
xyz