Ich versuche, in eine XML-Datei zu schreiben. Ich habe ein bestimmtes Element in meinem Code geändert und kann es erfolgreich drucken. Ich muss es in die Datei geschrieben haben, ohne die Struktur der Datei zu ändern.
Mein Code:Python Schreiben in eine XML-Datei
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
Wenn ich verschiedene Methoden der Öffnung versuchen, die Datei zu schließen, es löscht nur alle Daten in der XML-Datei. Mit dieser Methode
outfile = open(xmlfile, 'w')
oufile.write(etree.tostring(tree))
outfile.close()
Die Codestruktur meiner Datei geändert, um eine lange Zeile zu sein.
ziemlich Drucker oder Eindringkörper in lxml Es gibt keine. Ein langer String ist perfekt gültiges XML. Siehe diese Frage http://stackoverflow.com/questions/749796/pretty-printing-xml-in-python – WombatPM