Я пытаюсь записать в xml-файл. Я изменил определенный элемент в моем коде и могу получить его для успешной печати. Мне нужно записать его в файл, не меняя структуру файла.
Мой код:Python, записывающий в xml-файл
import os
from lxml import etree
directory = '/Users/eeamesX/work/data/expert/EFTlogs/20160725/IT'
XMLParser = etree.XMLParser(remove_blank_text=True)
for f in os.listdir(directory):
if f.endswith(".xml"):
xmlfile = directory + '/' + f
tree = etree.parse(xmlfile, parser=XMLParser)
root = tree.getroot()
hardwareRevisionNode = root.find(".//hardwareRevision")
if hardwareRevisionNode.text == "5":
print " "
print "Old Tag: " + hardwareRevisionNode.text
x = hardwareRevisionNode.text = "DVT2"
print "New Tag " + hardwareRevisionNode.text
Когда я попробовать различные методы открытия и закрытия файла, он просто удаляет все данные в файле XML. Использование этого метода
outfile = open(xmlfile, 'w')
oufile.write(etree.tostring(tree))
outfile.close()
Изменен код структуры моего файла как одна длинная строка.
Есть красивые принтеры или инденторы в LXML. Одна длинная строка отлично подходит для xml. См. Этот вопрос http://stackoverflow.com/questions/749796/pretty-printing-xml-in-python – WombatPM