XML Leere Zeilen erscheinen beim Einfügen eines neuen Knotens
Verfasst: Montag 21. Dezember 2020, 16:16
Hallo zusammen,
ich will bei einem bestehenden XML Dokument am Wurzelknoten ein neues Element einfügen.
Der Code macht auch eigentlich was er soll, nur bekomme ich, wenn ich die Funktion ein zweites mal aufrufe
ein paar leere Zeilen und je öfter ich die Funktion aufrufe, desto mehr leere Zeilen erscheinen.
Der letzte Knoten sieht auch immer "normal" aus und jetzt weiter oben man kommt, dest mehr leere Zeilen gibt es.
Ich habe mal im Internet so geschaut, aber die Lösungen die ich dort gefunden habe, haben nicht wirklich geklappt
Hier der Code für Wurzelknoten machen und neuen Knoten einfügen:
def createRoot(self, nameFile, nameRoot):
dir = os.path.dirname(__file__)
dir = dir + "/Games/" + nameFile
data = ET.Element(nameRoot)
xmlstr = minidom.parseString(ET.tostring(data)).toprettyxml(indent=" ", newl='\r', encoding="utf-8")
myfile = open(dir, 'wb')
myfile.write(xmlstr)
myfile.close()
def addNode(self, nameFile, player, action, time):
dir = os.path.dirname(__file__)
dir = dir + "/Games/" + nameFile
tree = ET.parse(dir)
root = tree.getroot()
playerNode = ET.SubElement(root, 'player')
playerNode.set("time", time)
actionNode = ET.SubElement(playerNode, player)
actionNode.text = action
xmlstr = minidom.parseString(ET.tostring(root)).toprettyxml(indent=" ", newl='\r', encoding="utf-8")
myfile = open(dir, 'wb')
myfile.write(xmlstr)
myfile.close()
Danke schon mal fürs durchlesen
VG
ich will bei einem bestehenden XML Dokument am Wurzelknoten ein neues Element einfügen.
Der Code macht auch eigentlich was er soll, nur bekomme ich, wenn ich die Funktion ein zweites mal aufrufe
ein paar leere Zeilen und je öfter ich die Funktion aufrufe, desto mehr leere Zeilen erscheinen.
Der letzte Knoten sieht auch immer "normal" aus und jetzt weiter oben man kommt, dest mehr leere Zeilen gibt es.
Ich habe mal im Internet so geschaut, aber die Lösungen die ich dort gefunden habe, haben nicht wirklich geklappt

Hier der Code für Wurzelknoten machen und neuen Knoten einfügen:
def createRoot(self, nameFile, nameRoot):
dir = os.path.dirname(__file__)
dir = dir + "/Games/" + nameFile
data = ET.Element(nameRoot)
xmlstr = minidom.parseString(ET.tostring(data)).toprettyxml(indent=" ", newl='\r', encoding="utf-8")
myfile = open(dir, 'wb')
myfile.write(xmlstr)
myfile.close()
def addNode(self, nameFile, player, action, time):
dir = os.path.dirname(__file__)
dir = dir + "/Games/" + nameFile
tree = ET.parse(dir)
root = tree.getroot()
playerNode = ET.SubElement(root, 'player')
playerNode.set("time", time)
actionNode = ET.SubElement(playerNode, player)
actionNode.text = action
xmlstr = minidom.parseString(ET.tostring(root)).toprettyxml(indent=" ", newl='\r', encoding="utf-8")
myfile = open(dir, 'wb')
myfile.write(xmlstr)
myfile.close()
Danke schon mal fürs durchlesen

VG