XML ElementTree: speichern

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Nergal
User
Beiträge: 72
Registriert: Montag 6. Oktober 2008, 14:02

Montag 9. Februar 2009, 17:31

Hallo,

ich lese auf zwei Arten XML ein.
Einmal aus einer Datei:

Code: Alles auswählen

XMLTree = ElementTree.parse(Dateiname)
Und einmal aus einem String:

Code: Alles auswählen

XMLTree  = ElementTree.fromstring(String)
Wenn ich den Inhalt nun über

Code: Alles auswählen

XMLTree.write(Dateiname)
abspeichern möchte, geht das nur wenn ich die Daten aus einer Datei eingelesen habe. Nicht aber wenn sie aus einem String kommen.

Was mache ich falsch?
Habe schon einige Alternativen ausprobiert, die aber alle nicht das gewünschte Ergebnis erzielt haben.


Gruß
Nerga
Benutzeravatar
Hyperion
Moderator
Beiträge: 7472
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Montag 9. Februar 2009, 18:45

Wie wärs mal mit einer Fehlermeldung? "Geht nicht" ist da wenig hilfreich ...
Benutzeravatar
cofi
Moderator
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Montag 9. Februar 2009, 19:22

Hyperion hat geschrieben:"Geht nicht" ist da wenig hilfreich ...
Vor allem, da es genau so funktionieren sollte, denn das sind nur zwei verschiedene Erzeugungsmethoden.
Ist der Dateiinhalt denn mit dem des Strings identisch? Wenn nicht, würde ich darauf tippen, dass dein String schlicht nicht well-formed (oder noch schlimmer) ist.
Benutzeravatar
hendrikS
User
Beiträge: 420
Registriert: Mittwoch 24. Dezember 2008, 22:44
Wohnort: Leipzig

Montag 9. Februar 2009, 19:38

Warum nicht einfach mal die beiden Variablen XMLTree vergleichen nachdem sie eingelesen sind.

Einfach mal rausprinten.

Wenn Sie gleich, sind sollte auch das schreiben gleichermassen funktionieren.
Nergal
User
Beiträge: 72
Registriert: Montag 6. Oktober 2008, 14:02

Dienstag 10. Februar 2009, 08:30

Der Inhalt des Strings ist der Inhalt der XML-Datei (copy & paste).

Allerdings sehe ich gerade, daß er bei der fromstring Methode nur ein Element anlegt und keinen xml.etree.ElementTree.ElementTree.
Dann macht auch die Fehlermeldung Sinn:
AttributeError: _ElementInterface instance has no attribute 'write'

Habe das Problem nun so gelöst:

Code: Alles auswählen

Temp = ElementTree.fromstring(String)
XMLTree = ElementTree.ElementTree(Temp)
Danke für die Anregungen.

Gruß
Nergal
Benutzeravatar
snafu
User
Beiträge: 5494
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Dienstag 10. Februar 2009, 12:41

Exemplare werden klein geschrieben...
shcol (Repo | Doc | PyPi)
Antworten