Seite 1 von 1
XML einlesen und speichern
Verfasst: Mittwoch 30. November 2011, 22:47
von lepper
Hallo zusammen,
ich tue via minidom eine XML Datei einlesen, bearbeiten und speichern. Ich habe da Problem mit der Kodierung (siehe xml):
erstens: nach einlesen geht encoding="ASCII" <?xml version="1.0" encoding="ASCII"?> verloren
zweitens:
ü wird mit
ü ersetzt, was eigentlich nicht gewollt ist. Ich will nach abspeichern immer noch
ü stehen haben.
Wie geagt, ich will das Original beibehalten, wie geht es?
Grüße
Code: Alles auswählen
<?xml version="1.0" encoding="ASCII"?>
<dictionary>
<eintrag>
<schluessel typ="str">Hallo</schluessel>
<wert typ="int">0</wert>
</eintrag>
<eintrag>
<schluessel typ="str">Hallo1</schluessel>
<wert typ="int">1</wert>
<level1>
<level2>
<level id="37">test</level>
<level id="23">test1</level>
<level id="13">testü</level>
</level2>
</level1>
</eintrag>
</dictionary>
Re: XML einlesen und speichern
Verfasst: Mittwoch 30. November 2011, 23:10
von Hyperion
Benutze doch die Elementree-API. Dort kannst Du bei der `tostring`-Methode ein Encoding angeben.
Re: XML einlesen und speichern
Verfasst: Donnerstag 1. Dezember 2011, 04:19
von Leonidas
Und außerdem: wozu Entities? 1975 hat angerufen, sie wollen ihr ASCII zurück. Es ist 2011, da kann man IMHO durchaus erwarten, dass alles UTF-8 ist. Außer man ist in Japan.
Re: XML einlesen und speichern
Verfasst: Donnerstag 1. Dezember 2011, 13:07
von Hyperion
Leonidas hat geschrieben:Und außerdem: wozu Entities? 1975 hat angerufen, sie wollen ihr ASCII zurück. Es ist 2011, da kann man IMHO durchaus erwarten, dass alles UTF-8 ist. Außer man ist in Japan.
Naja, vielleicht gibt es ein anderes Programm, welches das XML verarbeitet und mit utf-8 nix anfangen kann - wobei... nuja, da wäre dann sicherlich dort der Wurm drin
Wieso eigentlich Japan als Beispiel? Gibt es da etwas, das man wissen sollte bezüglich utf-8?
Re: XML einlesen und speichern
Verfasst: Donnerstag 1. Dezember 2011, 13:34
von Leonidas
Hyperion hat geschrieben:Leonidas hat geschrieben:Und außerdem: wozu Entities? 1975 hat angerufen, sie wollen ihr ASCII zurück. Es ist 2011, da kann man IMHO durchaus erwarten, dass alles UTF-8 ist. Außer man ist in Japan.
Naja, vielleicht gibt es ein anderes Programm, welches das XML verarbeitet und mit utf-8 nix anfangen kann - wobei... nuja, da wäre dann sicherlich dort der Wurm drin
Ich meine mich zu erinnern, dass die XML-Spec *vorschreibt*, dass jeder Parser mindestens UTF-8 versteht. Würde auch Sinn machen, da wenn man die Encoding-Angabe weglässt, sinnigerweise UTF-8 angenommen wird.
Hyperion hat geschrieben:Wieso eigentlich Japan als Beispiel? Gibt es da etwas, das man wissen sollte bezüglich utf-8?
Na, in Japan glaubt man nicht an UTF-8. Da ist dann jede Datei die ich aufmache dann Zeichensalat, bis ich mit iconv das EUC-JP zu UTF-8 umkodiere. Und wenn dann explodiert, dann war die Datei logischerweise in Shift-JIS und man muss natürlich das dann in UTF-8 konvertieren. Kann gar nicht sagen wie sehr ich das Leid bin.
Re: XML einlesen und speichern
Verfasst: Donnerstag 1. Dezember 2011, 13:42
von Hyperion
Leonidas hat geschrieben:
Ich meine mich zu erinnern, dass die XML-Spec *vorschreibt*, dass jeder Parser mindestens UTF-8 versteht. Würde auch Sinn machen, da wenn man die Encoding-Angabe weglässt, sinnigerweise UTF-8 angenommen wird.
Meine ich auch - ich spielte auch eher auf "Tools" an, die einen selbst geklöppelten Parser verwenden oder anders mit dem Encoding rumsauen. Hatten da ja erst neulich diesen einen Fall hier im Forum (Ok, da ging es "nur" um das Erstellen).
@Japan:
Oha... klingt ja übel! Ich nehme an, das hat historische Gründe? Wobei man sich ja auch hierzulande Frage, ob manche schon mal etwas über andere Encodings als ASCII gehört haben - speziell bei LaTeX und Dozenten rennt man da gegen Mauern...
Re: XML einlesen und speichern
Verfasst: Donnerstag 1. Dezember 2011, 13:48
von Leonidas
Hyperion hat geschrieben:Meine ich auch - ich spielte auch eher auf "Tools" an, die einen selbst geklöppelten Parser verwenden oder anders mit dem Encoding rumsauen. Hatten da ja erst neulich diesen einen Fall hier im Forum (Ok, da ging es "nur" um das Erstellen).
Na, aber schlechte Tools zu rechtfertigen und dann schlechte Lösungen zu bauen ist echt nicht so meine Sache.
Hyperion hat geschrieben:Oha... klingt ja übel! Ich nehme an, das hat historische Gründe? Wobei man sich ja auch hierzulande Frage, ob manche schon mal etwas über andere Encodings als ASCII gehört haben - speziell bei LaTeX und Dozenten rennt man da gegen Mauern...
Naja, ich nehme an dass es Teils an der Han-Unifikation von Unicode, die die Japaner dem Unicode-Consortium "ubelnehmen, und teils dran dass die Codepoints dann alles l"angere Multibyte-Sequenzen sind, und man da so viel Speicher verschwendet. Also haupts"achlich also social inertia.
Re: XML einlesen und speichern
Verfasst: Freitag 2. Dezember 2011, 01:13
von problembär
Manchmal kann es besser und schneller sein, das als einfache Nur-Text-Datei einzulesen und zu bearbeiten.
Sind das sehr viele Daten, die Du nach xml-Kriterien durchsuchen mußt, so daß Du wirklich ein xml-Modul brauchst oder würde es nicht auch ohne gehen?
Dann hättest Du jedenfalls nicht die Probleme, die Du beschreibst.
Re: XML einlesen und speichern
Verfasst: Freitag 2. Dezember 2011, 01:33
von deets
@problembaer
Und wieder ein Tipp aus der Kategorie "simpel und falsch". Die Menge falsch prozessierter und generierter XML-Dokumente ist ueberwaeltigend - genau weil man ihnen mit deinen simplen "Hausmittelchen" zu Leibe rueckt.
XML-Dokumente liest man mit einem Parser, und schreibt sie mit einem Generator. Und dann sind alle gluecklich. Aerger mit zB Entity-Referenzen, wie beim OP, gibt's nur bei denen, die das nicht machen. Das war 1998 noch vertretbar. Im Jahre 11 nach der Jahrtausendwende eher nicht.