背景
我正在使用SQLite来访问数据库并检索所需的信息。我正在使用Python 2.6版本中的ElementTree来创建包含该信息的XML文件。
代码
import sqlite3
import xml.etree.ElementTree as ET
# NOTE: Omitted code where I acccess the database,
# pull data, and add elements to the tree
tree = ET.ElementTree(root)
# Pretty printing to Python shell for testing purposes
from xml.dom import minidom
print minidom.parseString(ET.tostring(root)).toprettyxml(indent = " ")
####### Here lies my problem #######
tree.write("New_Database.xml")
尝试
我曾经尝试使用tree.write("New_Database.xml", "utf-8")
来替换上面的最后一行代码,但它并没有编辑XML文件的布局 - 它仍然是一团糟。
我还试图摆弄过,并尝试执行如下操作:
tree = minidom.parseString(ET.tostring(root)).toprettyxml(indent = " ")
代替将其打印到Python shell上,但出现了错误 AttributeError: 'unicode' object has no attribute 'write'.
问题
当我将树写入XML文件的最后一行时,有没有办法让XML文件像在Python shell中那样漂亮地打印?
我可以在这里使用toprettyxml()
吗,或者有其他方法可以做到这一点?