使用适当的缩进生成XML文件

时间:2016-08-19 06:00:19

标签: 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, 'cluster')
cluster.text=name

我尝试使用漂亮的解析器,但它给了我一个错误:'元素'对象没有属性'读'

import xml.dom.minidom

xml_p = xml.dom.minidom.parse(top)
pretty_xml = xml_p.toprettyxml()

给解析器的输入是否是正确的格式?如果这是错误的方法,请提出另一种缩进方式。

1 个答案:

答案 0 :(得分:1)

你无法直接解析top Element(),你需要将其作为一个字符串(这就是你应该导入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>