ich bräuchte mal wieder Hilfe.
Ich habe eine XML-Datei, diese soll nun mit Hilfe von Python erweitert. Also neue Knoten mit entsprechenden Inhalt. Dabei will ich aber das bestimmte vorhandene Knoten entfernt werden.
In der Doku zu ElementTree hab ich die Methode '__delitem__' und '__delslice' gefunden, nur weiß ich grad nicht so wirklich, wie ich das einsetzen kann.
Des Weiteren hab ich mehrdimensionales Array, deren Inhalt in die XML eingetragen werden soll. Dabei soll innerhalb eines Tags 2 Elemente des Arrays eingefügt werden. das aktuelle sowie das folge Element.
Hier ist erstmal mein bisher vorhandener Programmcode.
Code: Alles auswählen
#-*- coding: utf8 -*-
from xml.etree import ElementTree as etree
bsp_liste = ((0, 12, 26), (1, 54, 42), (2, 47, 21), (4, 12, 324), (5, 111, 0), (6, 111, 44), ...)
dateipfad = "datei.xml"
doc = open(dateipfad, 'rw')
tree = etree.parse(doc)
root = tree.getroot()
kats = tree.getroot().find("kategorien")
haupknoten_1 = tree.getroot().find("hauptknoten")
for i, a, b in bsp_liste:
kat = etree.SubElement(kats, id="id%d" %i, name="BSP%d" %(i+1)
punkt = etree.SubElement(kat, x="%d" %x, y="%d" %y
for i, a, b in bsp_liste:
unterknoten = etree.SubElement(hauptknoten, "unterknoten", end_id="id%d" %(i+1), start_id="id%d" %i)
unter_unterknoten_1 = etree.SubElement(unterknoten, "untereEbene", a="%d" %a, b="%d" %b)
unter_unterknoten_2 = etree.SubElement(unterknoten, "untereEbene", a="%d" %a, b="%d" %b)
etree.dump(root)
doc.write(root)
doc.close()
Dabei besteht jedes Listenelement des Arrays aus einer ID, X- und Y-Koordinaten.
Im Code (oben) werden mir ja bisher im entsprechenden Tag 2 mal die Punktkoordinaten eingefügt, aber jedes mal bisher die beiden aktuellen, ich will aber das aktuelle und das folge Element.
Hat jemand eine Idee?
Die XML-Datei soll dann später in dieser Form gespeichert werden.
Code: Alles auswählen
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beispiel SYSTEM "beispiel.dtd">
<wurzel version="1.2">
<kategorien>
<kategorie>
<punkt x="12" y="26"/>
</kategorie>
<kategorie>
<punkt x="54" y="42"/>
</kategorie>
<kategorie>
<punkt x="88" y="55"/>
</kategorie>
...
</kategorien>
<hauptkategorie>
<unterknoten>
<untereEbene x="12" y="26"/>
<untereEbene x="54" y="42"/>
</unterknoten>
<unterknoten>
<untereEbene x="54" y="42"/>
<untereEbene x="47" y="21"/>
</unterknoten>
...
</hauptkategorie>
</wurzel>
Daniela