ich versuche zurzeit eine XML Datei zu erstellen und komme grade an einem Punkt nicht weiter.
Und zwar verwende ich grade elementTree zum erstellen der Datei was soweit auch gut funktioniert, doch leider ist die Form in der etree die Daten in das File schreibt inaktzeptabel...
Dazu habe ich mich dann schon der Funktion toprettyxml von minidom bedient, doch kann ich dies dann nicht in eine Datei schreiben. Und bekomme immer den Fehler das ich das Attribut "writexml" nicht habe... (selbe mit etree) obwohl es ohne die Formatierung funktioniert.
Also wie schreibe ich eine Datei mit Formatierung in etree oder sollte ich dazu doch besser minidom verwenden ?
Hier der Code:
Code: Alles auswählen
import xml.etree.ElementTree as xml
from ElementTree_pretty import prettify
top = Element('top')
comment = Comment('Generated for PyMOTW')
top.append(comment)
child = SubElement(top, 'child')
child.text = 'This child contains text.'
child_with_tail = SubElement(top, 'child_with_tail')
child_with_tail.text = 'This child has regular text.'
child_with_tail.tail = 'And "tail" text.'
child_with_entity_ref = SubElement(top, 'child_with_entity_ref')
child_with_entity_ref.text = 'This & that'
#Eine Print funktioniert, aber leider nicht meine write file anweisung
print prettify(top)
Code: Alles auswählen
prettyTop = prettify(top)
xml.ElementTree(prettyTop).write(myFile)
Code: Alles auswählen
prettyTop = prettify(top)
XML_to_file(prettyTop)
Code: Alles auswählen
def prettify(elem):
#Return a pretty-printed XML string for the Element.
rough_string = ElementTree.tostring(elem, 'utf-8')
reparsed = minidom.parseString(rough_string)
return reparsed.toprettyxml(indent=" ")
def XML_to_file(rootElem):
#Open a file
myFile = open("c:/test/test.xml", 'w')
#Write data to file
rootElem.writexml(myFile, "", "\t", "\n")
#Close file like a good programmer
myFile.close()