[Python-de] XML und encoding mit xml.dom.minidom

Andreas Jung lists at andreas-jung.com
Fre Aug 19 20:18:21 CEST 2005



--On 19. August 2005 20:06:09 +0200 "Diez B. Roggisch" <deets at web.de> wrote:

>>> DOM ist nicht dafuer gemacht dokumente zu schreiben - daher fehlt sowas.
>>
>> gedacht. Schliesslich gibt es hierf├╝r entsprechende API Methoden.>
>> Das ist Unsinn.  DOM ist gerade f├╝r die Manipulation von XML Dokumenten
>
> Das ist kein Unsinn  - sondern leider eine tatsache. Wenn ich deine
> Aufmerksamkeit mal auf das hier zB lenken darf:
>
> http://xml.apache.org/xerces2-j/faq-dom.html#faq-3
>
> Erst ab DOM level 3 (!) habe die daran gedacht, das man auch dokumente
> damit schreiben k├Ânnen soll... Ich gebe zu, ich h├Ątte das gleich etwas
> detaillierter ausf├╝hren sollen.

FAQs zitieren ist die eine Seite der Medaille, praktische Erfahrung ist die 
andere. Ich habe gerade eine Applikation fertiggestellt die XML Dokumente 
genau der geschilderten Basis manipuliert. Keine Ahnung was das mit DOM 3 
zu tun hat. Diese APIs sind schon seit Ewigkeiten in Minidom drin und 
funktionieren hervorragend.

>
>> sonst willst Du ein XML Dokument ├╝ber eine API manipulieren? ├ťber SAX?
>
> Äh - auch gerne SAX, warum nicht? Wenn ich Datenstrukuren serialisieren
> m├Âchte, dann ist das ├╝blicherweise _kein_ DOM, aber gerne ein Baum.
> Wenn ich aber eh den Datenbaum traversieren muss, um DOM zu generieren,
> das dann als XML rausgepr├╝gelt wird - bei verdopplung des
> Speicherbedarfs - dann kann ich auch ├╝ber SAX eine Ausgabe machen.
> Meistens jedenfalls.
>
> DOM habe ich pers├Ânlich immer nur gebraucht wenn ich auf dem Baum
> gearbeitet habe - also XML eingelesen, und dann darauf operiert. Daf├╝r
> ist es gut. Serialisieren - eher nicht, IMHO.

Unsinn, s.o. Dir fehlt einfach die praktische Erfahrung. Manipulation von 
DOM B├Ąumen sind g├Ąngige Praxis. Das macht man mit XML, da macht man 
genauso gut in JS mit HTML DOM in Browsern.


>
> Sch├Ân das es funktioniert. Aber da es nicht Standard ist, kann man auch
> gleich zu anderen l├Âsungen wie (c)element-tree greifen - da ist die API
> deutlich pythonischer.
>

ElementTree stand hier garnicht zur Diskussion. Wir haben hier ├╝ber 
minidom geredet. Das ElementTree sch├Âner ist, weiss ich selber...nur ist 
es nicht
Bestandteil der Standarddistro und wenn ich eine Applikation schreibe, die 
von vielen Leuten verwendet und auch weiterentwicklet wird, dann halte ich 
erstmal an die existierenden Dinge, die es schon gibt..und so schlimm ist 
DOM auch nicht....man mu├č es nur mal kapiert haben und vorallem damit 
richtig gearbeitet haben *wink*

-aj
-------------- nńchster Teil --------------
Ein Dateianhang mit Bin├Ąrdaten wurde abgetrennt...
Dateiname   : nicht verf├╝gbar
Dateityp    : application/pgp-signature
Dateigr├Â├če  : 186 bytes
Beschreibung: nicht verf├╝gbar
URL         : http://starship.python.net/pipermail/python-de/attachments/20050819/8e281eea/attachment-0001.pgp