Как мне заставить ElementTree Python красиво печатать в XML-файл?Python

Программы на Python
Ответить
Anonymous
 Как мне заставить ElementTree Python красиво печатать в XML-файл?

Сообщение Anonymous »

Справочная информация
Я использую SQLite для доступа к базе данных и получения нужной информации. Я использую ElementTree в Python версии 2.6 для создания 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, что выдает ошибку AttributeError: объект 'unicode' не имеет атрибута 'write'[/b].

Вопросы

Когда я записываю свое дерево в XML-файл в последней строке, есть ли способ красиво печатать в XML-файл, как это делается в оболочке Python?

Могу ли я использовать toprettyxml() здесь или есть другой способ сделать это?

Подробнее здесь: https://stackoverflow.com/questions/288 ... n-xml-file
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»