Seite 1 von 1
Ableitung von Ergebnisklasse
Verfasst: Freitag 7. Dezember 2007, 09:43
von template
Hallo,
ich würde gerne eine klasse von xml.dom.node ableiten und zusätzliche funktionen hinzufügen. Nun habe ich aber das Problem, das Funktionen wie xml.dom.minidom.parse ja irgendwie ein node Objekt zurück liefert, das wiederum child nodes enthält. Nun würde ich gerne erreichen, das statt dessen meine abgeleitete Klasse hier verwandt wird. Wie macht man sowas?
Vielen dank im voraus
template
Verfasst: Freitag 7. Dezember 2007, 10:06
von BlackJack
Schwierig, weil ja nahezu beliebige Parser verwendet werden können, die letztendlich die Knoten erzeugen.
Wahrscheinlich ist es einfacher nicht mit Vererbung sondern Delegation zu arbeiten. Also parsen und dann über den Baum traversieren und die ganzen Knoten in Wrapper-Objekte verpacken, welche die zusätzlichen Funktionen bieten und alles andere an den verpackten Knoten weiterleiten. Oder die neuen Methoden den vorhandenen Objekten hinzufügen.
Oder nicht diesen DOM-Kram benutzen.

Verfasst: Freitag 7. Dezember 2007, 10:18
von template
Danke für die schnelle Antwort. Naja ich würde gerne voerst ohne externe Bibliotheken auskommen und Python ab 2.4 unterstützen und da bleibt fast nur xml.dom.minidom. Allerdings ist das Interface ziemlich fummelig.
Verfasst: Freitag 7. Dezember 2007, 10:47
von BlackVivi
template hat geschrieben:Danke für die schnelle Antwort. Naja ich würde gerne voerst ohne externe Bibliotheken auskommen und Python ab 2.4 unterstützen und da bleibt fast nur xml.dom.minidom. Allerdings ist das Interface ziemlich fummelig.
Was spricht dagegen, Elementtree herunter zu laden und mit'n in'n Ordner zu packen? Das sind nur wenige Kilobytes mehr.
Verfasst: Freitag 7. Dezember 2007, 11:05
von BlackJack
Wenn es mit (2.4er) Bordmitteln sein soll würde ich einen SAX-Parser benutzen um einen eigenen Element-Baum mit *meinen* Objekten aufzubauen. Womit ich dann wahrscheinlich ElementTree selber programmieren würde. Also kann ich auch gleich das nehmen. Oder `lxml.etree`.