1
我使用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='''
<group>
<uuid>%s</uuid>
<id>%s</id>
<name>%s</name>
<desc>%s</desc>
</group>
''' % (g_uuid, g_id, g_name, g_desc)
access = root.find('access')
access.append(ET.fromstring(newgroup))
這導致該組被添加作爲一個孩子,但組ENDTAG後沒有換行和第一標籤只有1片,不管我有多少製表投入新聞組字符串。
<group>
<uuid>f60e6b30-eec9-11e6-a5d4-2c768aabceca</uuid>
<id>2</id>
<name>newgroup</name>
<desc>Testing groups</desc>
</group></access>
我不知道爲什麼它正確地採取空格的組的孩子的,但攪亂組標籤本身的格式。
第二種方法建立組的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)
但隨後整個新聞組樹出現在一行不換行和標籤都:
<group><uuid>f60e6b30-eec9-11e6-a5d4-2c768aabceca</uuid><id>2</id><name>newgroup</name><desc>Testing groups</desc></group></access>
我我是python的新手,並不知道如何格式化字符串。那麼,如何美化這個東西,以便讓腳本中的格式化XML格式化好?
我用固定霍版本參數遞歸調用(不這樣做,他們將無法正常工作,如果沒有默認值)。另外,請和贊成一起投票答覆(上邊三角形)。謝謝。 –