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

Diez B. Roggisch deets at web.de
Sam Aug 20 02:52:27 CEST 2005


> 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.

Eben, du hast keine Ahnung von DOM - und weisst deshalb nicht, das es 
zum lesen und auch bearbeiten gedacht ist, aber in bis einschliesslich 
Level 2 _nicht_ serialisieren kann. Per Standard. Und wenn es das nicht 
kann, darf man auch darüber nachdenken warum man es _überhaupt_ braucht.

> 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.

Eben - Manipulation von Bäumen. In Browsern. Dein eigenes Beispiel 
belegt was ich sage: Lesen, drauf arbeiten. Wo genau wird da was 
geschrieben?

> 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*

Du willst also ernsthaft behaupten, eine Alternative aufzuzeigen ist 
schlecht? Woher masst du dir an zu wissen, ob Sebastian ElementTree 
verwenden kann oder nicht? Und print existiert ebenso in Standard-Python 
- warum also überhaupt DOM? Wo ist der Gewinn? Bloss weil es "XML" im 
Namen trägt? Wenn ich Daten in XML generieren muss, dann gewinne ich 
_nichts_ dadurch sie erst in DOM zu verpacken - ich kann sie auch direkt 
wegschreiben. Einziger Grund DOM zu verwenden wäre eine Validierung der 
Daten durch Schema/DTD - aber mir wäre nicht bekannt, das das auf 
DOM-Bäumen möglich ist. Das macht der parser beim _einlesen_.

Deine permanenten Hinweise auf mangelnde Erfahrung meinerseits im Umgang 
mit XML - das ist amüsant von jemandem, der offensichtlich verwendete 
Standards nicht kennt. Und dem die Übersicht fehlt einzuschätzen, was 
Standards sind, und wozu sie gut sind - nämlich interoperabilität und 
allgemeines Verständnis zu garantieren.  DOM2 kann nicht serialisieren. 
Punkt. Wenn _eine_ Implementation das kann, und eine andere das anders 
macht - dann ist das schön so, aber man verlässt die Pfade des Standards 
- und in dem Moment ist die Frage danach, was der Standard einem bringt, 
angebracht. Zusätzlich dazu das DOM hier eh nicht ideal ist. Deine 
offensichtliche Unfähigkeit über den Tellerrand zu schauen spricht Bände 
bezgl. "kapiert und vor allem richtig damit gearbeitet haben."

Und glaub' mir eins: ich habe mehr XML in meinem Leben verarbeiten 
müssen als ich jemals wollte - und kenne meinen "Feind."

Gute Nacht,

Diez