ich bin ziemlich neu bei Python und versuche gerade einen Konverter zu schreiben.
Die Ausgangsdatei ist eine Baumhierarchie, bestehend aus einzelnen Knoten, die bestimmte Attribute haben wie 'Name', 'Parent' usw.
Die Daten sind dabei in Blöcken von mehreren Zeilen zusammengefasst. In jeder Zeile steht eine Information.
Kleines Beispiel:
Code: Alles auswählen
1 Name gruppe_a
1 Parent NULL
2 Name gruppe_b
2 Parent gruppe_a
Ich will diese Struktur jetzt in eine XML Datei schreiben. Dabei habe ich mir gedacht, ich erzeuge eine Klasse, die eine node beschreibt.
Code: Alles auswählen
class node():
parent = 'null'
name = 'null'
def setName(self, n):
self.name = n
def setParent(self, p):
self.parent = p
def getName(self):
return self.name
def getParent(self):
return self.parent
Code: Alles auswählen
def readFile(file):
count = 0
a = []
f = open(file, "r")
for l in f:
if ( find(l, 'Name') != -1 ):
count = count + 1
a.insert(count, (psNode()))
a[count].setName(split(l)[2])
if ( find(l, 'Parent') != -1 ):
a[count].setParent(split(l)[2])
return a
1. In zeile 9 rufe ich setName auf. Da bekomme ich den Fehler "list index out of range".
2. Ist diese herangehensweise überhaupt in ordnung, oder gibt es bessere Möglichkeiten?
3. Um das XML herausschreiben zu können, muß ich die Liste (hier a) irgendwie so sortieren, daß die Hierarchie wieder stimmt. Ich könnte ja auch Zeilenweise auslesen und auch so schreiben, aber das funktioniert nicht, da ich später auf eine Node stoßen werde, die wieder weiter oben eingehängt werden muß.
Vielleicht hat ja jemand eine Idee. Ich wäre für informationen sehr dankbar.
Gruß