DasIch hat geschrieben:Lies noch einmal die Fehlermeldung und dann mach mal folgendes:
Code: Alles auswählen
print etree.XMLTreeBuilder
print etree.XMLTreeBuilder()
Fällt dir etwas auf?
Ja, ich hab nie mit der Instanz gearbeitet.
Was ich aber trotzdem bei der Deklarierung von doctype nicht verstehe, ist dieser "public identifier". Besteht dieser einfach aus einer Zahl, Zeichenkette, oder sonst was? Was muss man angeben, wenn man ihn eigentlich nicht haben will/braucht? Irgendwas muss man ja angeben, sonst kommt folgendes zurück:
Code: Alles auswählen
dockommentar = etree.XMLTreeBuilder().doctype('bla', "keks.dtd")
TypeError: doctype() takes exactly 4 arguments (3 given)
Das noch ein Argument benötigt wird, ist mir wenn ich das lese auch klar, aber was ist, wenn ich es in dem letztlichen Ergebniss (in der XML-Datei) nicht benötige?
Bisher hab ich es so geschrieben:
Code: Alles auswählen
dockommentar = etree.XMLTreeBuilder().doctype('bla', "public", "keks.dtd")
Wie wird jetzt diese Zeile in die Datei eingefügt, VOR dem Wurzelelement, aber NACH der Kodierungszeile?
Denn nach dem Schema von Zap funktioniert es nicht.
Code: Alles auswählen
dockommentar = etree.XMLTreeBuilder().doctype('bla','public', "keks.dtd")
etree.insert(0, dockommentar)
etree.tostring(root)
Da wird dann gesagt:
Code: Alles auswählen
AttributeError: 'module' object has no attribute 'insert'
Und wie dann, ich meine wie bekomme ich jetzt diesen docstring in die XML rein, und dann noch an die richtige Stelle?
@Leonidas
gut zu wissen. Danke für den Hinweis
Daniela