我使用xml.etree.ElementTree解析XML文件,并认为一个孩子为一个元素添加脚本。我有两种方法,即在技术上的工作,但结果都在搞砸格式化/空格当我转储使用ET.dump(根)Python xml.etree格式化美化?
第一种方法将整个XML我使用fromstring
import xml.etree.ElementTree as ET
tree = ET.parse('test.xml')
root = tree.getroot()
#snip
newgroup='''
%s
%s
%s
%s
''' % (g_uuid, g_id, g_name, g_desc)
access = root.find('access')
access.append(ET.fromstring(newgroup))
这导致该组被添加作为一个孩子,但组ENDTAG后没有换行和第一标签只有1片,不管我有多少制表投入新闻组字符串。
f60e6b30-eec9-11e6-a5d4-2c768aabceca
2
newgroup
Testing groups
我不知道为什么它正确地采取空格的组的孩子的,但搅乱组标签本身的格式。
第二种方法建立组的etree与它的孩子
newgroup = ET.Element('group')
ET.SubElement(newgroup, 'uuid').text = '%s' % g_uuid
ET.SubElement(newgroup, 'id').text = '%s' % g_id
ET.SubElement(newgroup, 'name').text = '%s' % g_name
ET.SubElement(newgroup, 'desc').text = '%s' % g_desc
access = root.find('access')
access.append(newgroup)
但随后整个新闻组树出现在一行不换行和标签都:
f60e6b30-eec9-11e6-a5d4-2c768aabceca2newgroupTesting groups
我我是python的新手,并不知道如何格式化字符串。那么,如何美化这个东西,以便让脚本中的格式化XML格式化好?