2016-09-05 4 views
0

Самый простой способ записать отредактированный корень XML в новый файл? Это то, что у меня есть до сих пор, и оно бросает AttributeError: объект 'module' не имеет атрибута 'write'
PS: Я не могу использовать другие api помимо ElementTree.ElementTree Write to XML

import xml.etree.ElementTree as ET 
from xml.etree.ElementTree import Element, SubElement, Comment 
from ElementTree_pretty import prettify 
tree = ET.parse('file-to-be-edited.xml') 
root = tree.getroot() 

#Process XML here 

ET.write('file-after-edits.xml') 

ответ

1

Ваш tree является объектом ElementTree, который предоставляет метод write() для записи дерева. Например:

#Process XML here 
tree.write('file-after-edits.xml', encoding='utf8') 
+0

Спасибо за решение. Глупая ошибка с моей стороны. Есть ли способ предотвратить создание сгенерированного файла? – user1195192

+0

Вы можете использовать ['lxml'] (http://lxml.de/), который обеспечивает совместимый API с API-интерфейсом' ElementTree'. Его метод 'tree.write()' принимает аргумент 'pretty_print = True'. – mhawke

+0

Или используйте 'minidom', см. Http://stackoverflow.com/questions/749796/pretty-printing-xml-in-python – mhawke

0

AttributeError: «модуль» объект не имеет атрибута «писать» говорит, что вы не можете вызвать метод записи непосредственно из класса ElementTree, это не статический метод, попробуйте использовать tree.write('file-after-edits.xml'), дерево Ваш объект от ElementTree.

+0

В любом случае, сможете сгенерировать сгенерированный файл? – user1195192

 Смежные вопросы

  • Нет связанных вопросов^_^