Comment puis-je obtenir Python ElementTree pour la jolie imprimer dans un fichier XML?

Fond

J'utilise SQLite pour accéder à une base de données et d'extraire les informations souhaitées. Je suis en utilisant ElementTree dans la version de Python 2.6 pour créer un fichier XML avec cette information.

Code

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")

Tentatives

J'ai essayé d'utiliser tree.write("New_Database.xml", "utf-8") en place de la dernière ligne de code ci-dessus, mais il n'a pas modifier le code XML de la mise en page à tous - c'est toujours un pêle-mess.

J'ai aussi décidé de bricoler et essayé de faire:
tree = minidom.parseString(ET.tostring(root)).toprettyxml(indent = " ")
au lieu de l'impression de ce à la Python shell, qui donne l'erreur AttributeError: 'unicode' objet n'a pas d'attribut 'écrire'.

Questions

Quand j'écris mon arbre dans un fichier XML sur la dernière ligne, il est un moyen assez de pression pour le fichier XML, comme il le fait pour le Python shell?

Puis-je utiliser toprettyxml() ici ou est-il une autre façon de le faire?

OriginalL'auteur Kimbluey | 2015-03-02