Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 生成具有适当缩进的XML文件_Python_Xml_Xml Parsing_Xml.etree - Fatal编程技术网

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

我试图用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, '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