XML und encoding mit xml.dom.minidom

-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hallo! Ich bin gerade dabei mit Hilfe von xml.dom.minidom einen XML Baum zu erstellen. Soweit so gut. Nur weiß ich noch nicht wie ich das encoding in den <?xml ..> tag am Anfang bringe. Außerdem habe ich noch keine Möglichkeit gefunden den Doctype irgendwo anzugeben. Wäre sehr hilfreich wenn da einer weiter weiß. Gruß, Sebastian Pölsterl -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.1 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org iD8DBQFDBeMP1ygZeJ3lLIcRAjHPAJ0c5sB4XdNoh+hxSH7ADOTjTxwOpwCfe8s2 Z8X4P0B0RhxofQ3a0sUxxtM= =h9AG -----END PGP SIGNATURE----- _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de

Am Friday, 19. August 2005 15:47 schrieb "Sebastian \"Marduk\" Pölsterl":
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Hallo!
Ich bin gerade dabei mit Hilfe von xml.dom.minidom einen XML Baum zu erstellen. Soweit so gut. Nur weiß ich noch nicht wie ich das encoding in den <?xml ..> tag am Anfang bringe. Außerdem habe ich noch keine Möglichkeit gefunden den Doctype irgendwo anzugeben.
DOM ist nicht dafuer gemacht dokumente zu schreiben - daher fehlt sowas. Du kannst dir aber natuerlich immer mit ""!<?xml version="1.0"....> <!DOCTYPE ...> %s """ % mein_dom behelfen. Aber warum gehst du den schmerzhaften weg ueber DOM zum bauen von xml? Diez _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de

-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Diez B. Roggisch schrieb:
DOM ist nicht dafuer gemacht dokumente zu schreiben - daher fehlt sowas. Du kannst dir aber natuerlich immer mit
""!<?xml version="1.0"....> <!DOCTYPE ...> %s """ % mein_dom
behelfen. Die Lösung scheint mir ganz gut zu sein. So werd ich's wohl machen. Manchmal ist es zu eben zu einfach als dass man selbst drauf kommt ;)
Aber warum gehst du den schmerzhaften weg ueber DOM zum bauen von xml?
Ich finde den Weg eigentlich nicht besonders schmerzhaft. Meine XML Datei ist ja ziemlich einfach gestrickt, die hat zB gar keine Attribute. Somit brauch ich nur paar createElement, createTextNode und appendChild und das ganze in einer Schleife. Das ist eigentlich nicht wirklich schmerzhaft. - -- Gruß, Sebastian Pölsterl -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.1 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org iD8DBQFDBhJy1ygZeJ3lLIcRAgqRAJsH3TGGfCBh7YPvB7tCGK0Bgt2bMACgq2NI vMMZujy0EPbwq6/M/W31Cgg= =g2qR -----END PGP SIGNATURE----- _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de

Sebastian "Marduk" Pölsterl wrote:
Diez B. Roggisch schrieb:
[...]
Aber warum gehst du den schmerzhaften weg ueber DOM zum bauen von xml?
Ich finde den Weg eigentlich nicht besonders schmerzhaft. Meine XML Datei ist ja ziemlich einfach gestrickt, die hat zB gar keine Attribute. Somit brauch ich nur paar createElement, createTextNode und appendChild und das ganze in einer Schleife. Das ist eigentlich nicht wirklich schmerzhaft.
Du scheinst eine recht hohe Schmerzschwelle zu haben. Warum probierst Du nicht XML-Baum-APIs die pythonischer sind, oder willst Du mit der Standard Library auskommen? Bis demnächst, Walter Dörwald _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de

--On 19. August 2005 17:10:11 +0200 "Diez B. Roggisch" <deets@web.de> wrote:
Am Friday, 19. August 2005 15:47 schrieb "Sebastian \"Marduk\" Pölsterl":
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Hallo!
Ich bin gerade dabei mit Hilfe von xml.dom.minidom einen XML Baum zu erstellen. Soweit so gut. Nur weiß ich noch nicht wie ich das encoding in den <?xml ..> tag am Anfang bringe. Außerdem habe ich noch keine Möglichkeit gefunden den Doctype irgendwo anzugeben.
DOM ist nicht dafuer gemacht dokumente zu schreiben - daher fehlt sowas.
Das ist Unsinn. DOM ist gerade für die Manipulation von XML Dokumenten gedacht. Schliesslich gibt es hierfür entsprechende API Methoden. Wie sonst willst Du ein XML Dokument über eine API manipulieren? Über SAX? Zu dem Problem: es gibt natürlich auch in Minidom einen Document() Knoten, den man als erstes anlegt und dann die Elemente dran klatscht: from xml.dom.minidom import Document doc = Document() node1 = doc.createElement('foobar') doc.appendChild(node) print doc.toxml(encoding='utf-8') Man beachte auch, dass der 'encoding' Parameter explizit gesetzt werden muß, wenn man das Encoding in der Präambel haben möchte. Ansonsten wird es ausgelassen und es gilt der allgemeine Default Utf8. -aj _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de

--On 19. August 2005 19:27:15 +0200 Andreas Jung <lists@andreas-jung.com> wrote:
from xml.dom.minidom import Document
doc = Document() node1 = doc.createElement('foobar') doc.appendChild(node)
print doc.toxml(encoding='utf-8')
Man beachte auch, dass der 'encoding' Parameter explizit gesetzt werden muß, wenn man das Encoding in der Präambel haben möchte. Ansonsten wird es ausgelassen und es gilt der allgemeine Default Utf8.
Nachtrag: es gibt minidom auch eine dedizierte Knotenklasse Documenttype, deren writexml() Methode auch den DOCTYPE rausschreibt. Daneben hat minidom.DOMImplementation Methoden wie createDocument() und createDocumentType() mit denen sich der Doctype irgendwie an eine DOM Instanz hängen lässt. Leider fehlt mir dafür die Erfahrung um genau zu sagen wie (habe ich auch noch nie gebraucht). -aj _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de

-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Andreas Jung schrieb:
Nachtrag: es gibt minidom auch eine dedizierte Knotenklasse Documenttype, deren writexml() Methode auch den DOCTYPE rausschreibt. Daneben hat minidom.DOMImplementation Methoden wie createDocument() und createDocumentType() mit denen sich der Doctype irgendwie an eine DOM Instanz hängen lässt. Leider fehlt mir dafür die Erfahrung um genau zu sagen wie (habe ich auch noch nie gebraucht).
Herzlichen Dank für den Tipp nun passt alles wie es sollte ;) - -- Gruß, Sebastian Pölsterl -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.1 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org iD8DBQFDBkJK1ygZeJ3lLIcRAu3+AKCAFXbZnEPWsO9wtg7iKruDJgIkygCfTU+0 XxVqJbpqawsYwWGMYPSuhrA= =Vyab -----END PGP SIGNATURE----- _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de

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.
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.
Zu dem Problem: es gibt natürlich auch in Minidom einen Document() Knoten, den man als erstes anlegt und dann die Elemente dran klatscht:
from xml.dom.minidom import Document
doc = Document() node1 = doc.createElement('foobar') doc.appendChild(node)
print doc.toxml(encoding='utf-8')
Man beachte auch, dass der 'encoding' Parameter explizit gesetzt werden muß, wenn man das Encoding in der Präambel haben möchte. Ansonsten wird es ausgelassen und es gilt der allgemeine Default Utf8.
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. MfG Diez _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de

--On 19. August 2005 20:06:09 +0200 "Diez B. Roggisch" <deets@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 _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de

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 _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de

Deine Klugscheisserei kannst Du Dir ersparen. Ich arbeite seit 10 Jahren im Bereich E-Publishing und habe seit dem genügend mit SGML und XML tagtäglich zu tun. Ich habe wahrscheinlich jeden Tag mehr XML automatisiert bearbeitet als Du in Deinem ganzen Leben. Nichts für ungut...eine Antwort kannst Du Dir sparen...ich bin ab heute 4 Wochen in Urlaub :-) -aj --On 20. August 2005 02:52:27 +0200 "Diez B. Roggisch" <deets@web.de> wrote:
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
_______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de

Andreas Jung wrote:
DOM ist nicht dafuer gemacht dokumente zu schreiben - daher fehlt sowas.
Das ist Unsinn. DOM ist gerade für die Manipulation von XML Dokumenten gedacht.
Falls ein Autoritätsbeweis (vom PyXML-Maintainer :-) hilft: Diez hat m.E. Recht - und die beiden Aussagen sind auch total verschieden. Es ist ein Unterschied, ob ich ein Dokument manipulieren (lesen-ändern-schreiben) oder generieren (schreiben aus dem Nichts) will. Das erstere geht mit DOM relativ gut, das letztere würde ich niemals in Erwägung ziehen.
Schliesslich gibt es hierfür entsprechende API Methoden. Wie sonst willst Du ein XML Dokument über eine API manipulieren? Über SAX?
Wenn ich XML generieren will, nehme ich üblicherweise print. Man muss ein paar Kleinigkeiten beachten, etwa dass alles UTF-8 wird oder dass alle "unbekannten" Strings mit xml.sax.escape behandelt werden. Das ist aber einfacher als die ganzen Generierungs-APIs. Ciao, Martin _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de

-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Martin v. Löwis schrieb:
Wenn ich XML generieren will, nehme ich üblicherweise print. Man muss ein paar Kleinigkeiten beachten, etwa dass alles UTF-8 wird oder dass alle "unbekannten" Strings mit xml.sax.escape behandelt werden. Das ist aber einfacher als die ganzen Generierungs-APIs.
Letztendlich ist ja dann doch alles irgendwie Glaubenssache ;) - -- Gruß, Sebastian Pölsterl -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.1 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org iD8DBQFDBkP81ygZeJ3lLIcRArlPAJ9LRyiHUROT6rUrW5aaFhouccIthgCeJ4P+ 8YzEU9+w89K5QEGTqiy2VQU= =sKWg -----END PGP SIGNATURE----- _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de

--On 19. August 2005 22:06:20 +0200 "\"Martin v. Löwis\"" <martin@v.loewis.de> wrote:
Andreas Jung wrote:
DOM ist nicht dafuer gemacht dokumente zu schreiben - daher fehlt sowas.
Das ist Unsinn. DOM ist gerade für die Manipulation von XML Dokumenten gedacht.
Falls ein Autoritätsbeweis (vom PyXML-Maintainer :-) hilft: Diez hat m.E. Recht - und die beiden Aussagen sind auch total verschieden.
Es ist ein Unterschied, ob ich ein Dokument manipulieren (lesen-ändern-schreiben) oder generieren (schreiben aus dem Nichts) will. Das erstere geht mit DOM relativ gut, das letztere würde ich niemals in Erwägung ziehen.
Genau das ist der Punkt. Wenn ich XML Dokumente from-Scratch generieren will, dann mach ich das auch mit 'print'. Wenn ich ein existierendes XML Dokument verarbeiten muß und z.B. wie es bei uns im Verlag häufig vorkommt gewisse Unterbäume löschen oder verschieben muß, dann ist ein Knoten-orienterierter Ansatz wie in mit DOM zur Verfügung stellt ideal - unabhängig von der Komplexität der API und der Performanz und Speichereffizienz. -aj _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de

Holla,
Genau das ist der Punkt. Wenn ich XML Dokumente from-Scratch generieren will, dann mach ich das auch mit 'print'. Wenn ich ein existierendes XML Dokument verarbeiten muß und z.B. wie es bei uns im Verlag häufig vorkommt gewisse Unterbäume löschen oder verschieben muß, dann ist ein Knoten-orienterierter Ansatz wie in mit DOM zur Verfügung stellt ideal - unabhängig von der Komplexität der API und der Performanz und Speichereffizienz.
Wer lesen kann ist klar im Vorteil - Sebastian schrieb: """ Ich bin gerade dabei mit Hilfe von xml.dom.minidom einen XML Baum zu erstellen. """ Darauf bezog ich meine Antwort.Für mich hört sich das danach an des er ihn selber erstellt - und du hast gerade selbst gesagt sogar du würdest das mit print machen. Ich habe genug mit DOM bzw. typsicheren Mappings a la Castor gearbeitet, explizit und auch implizit über XSLT. Tolle Sache. Aber nicht für das akute Problem. Und DOM2 hat klare Mängel - worauf ich hinzuweisen wagte.
Deine Klugscheisserei kannst Du Dir ersparen. Ich arbeite seit 10 Jahren im Bereich E-Publishing und habe seit dem genügend mit SGML und XML tagtäglich zu tun. Ich habe wahrscheinlich jeden Tag mehr XML automatisiert bearbeitet als Du in Deinem ganzen Leben. Nichts für ungut...eine Antwort kannst Du Dir sparen...ich bin ab heute 4 Wochen in Urlaub :-)
Nache einer kurzen Karnickelschreckstarre vor ach sooviel Überlegenheit freue ich mich jetzt für deine Kollegen das du erstmal vier Wochen weg bist und sie Zeit haben sich ein paar Gedanken zu machen, was man wie besser machen könnte - ohne einen verbohrten DO(G)Matiker in ihren Reihen. Schönen Urlaub! Diez _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de

Dummbrabbler :-) --On 20. August 2005 10:54:56 +0200 "Diez B. Roggisch" <deets@web.de> wrote:
Holla,
Genau das ist der Punkt. Wenn ich XML Dokumente from-Scratch generieren will, dann mach ich das auch mit 'print'. Wenn ich ein existierendes XML Dokument verarbeiten muß und z.B. wie es bei uns im Verlag häufig vorkommt gewisse Unterbäume löschen oder verschieben muß, dann ist ein Knoten-orienterierter Ansatz wie in mit DOM zur Verfügung stellt ideal - unabhängig von der Komplexität der API und der Performanz und Speichereffizienz.
Wer lesen kann ist klar im Vorteil - Sebastian schrieb:
""" Ich bin gerade dabei mit Hilfe von xml.dom.minidom einen XML Baum zu erstellen. """
Darauf bezog ich meine Antwort.Für mich hört sich das danach an des er ihn selber erstellt - und du hast gerade selbst gesagt sogar du würdest das mit print machen.
Ich habe genug mit DOM bzw. typsicheren Mappings a la Castor gearbeitet, explizit und auch implizit über XSLT. Tolle Sache. Aber nicht für das akute Problem. Und DOM2 hat klare Mängel - worauf ich hinzuweisen wagte.
Deine Klugscheisserei kannst Du Dir ersparen. Ich arbeite seit 10 Jahren im Bereich E-Publishing und habe seit dem genügend mit SGML und XML tagtäglich zu tun. Ich habe wahrscheinlich jeden Tag mehr XML automatisiert bearbeitet als Du in Deinem ganzen Leben. Nichts für ungut...eine Antwort kannst Du Dir sparen...ich bin ab heute 4 Wochen in Urlaub :-)
Nache einer kurzen Karnickelschreckstarre vor ach sooviel Überlegenheit freue ich mich jetzt für deine Kollegen das du erstmal vier Wochen weg bist und sie Zeit haben sich ein paar Gedanken zu machen, was man wie besser machen könnte - ohne einen verbohrten DO(G)Matiker in ihren Reihen.
Schönen Urlaub!
Diez
_______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de

Andreas Jung wrote:
Dummbrabbler :-)
Kann sicher vorkommen - aber wer sich noch nicht mal inhaltlich auseinandersetzt, ist ein Glashausmittensitzer mit nem Haufen Steine in der Hand. Na, nix für ungut. Die positionen sind bekannt, mehr bringt nix. MfG Diez _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de

--On 20. August 2005 11:11:32 +0200 "Diez B. Roggisch" <deets@web.de> wrote:
Na, nix für ungut. Die positionen sind bekannt, mehr bringt nix.
Hör doch auf mit dem Gequicke. Die Antworten von mir waren 100%ig korrekt und angemessen. Offenbar kannst Du nicht anderes als Dich hinter Standards und Normen zu verschanzen ohne aber einen Hauch von praktischer Erfahrung zu haben. Vergiss es...solche Leute wie Du landen prinzipiell (ab jetzt) auf meiner Spamliste. Ciao, -aj _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de

Hör doch auf mit dem Gequicke. Die Antworten von mir waren 100%ig korrekt und angemessen. Offenbar kannst Du nicht anderes als Dich hinter Standards und Normen zu verschanzen ohne aber einen Hauch von praktischer Erfahrung zu haben. Vergiss es...solche Leute wie Du landen prinzipiell (ab jetzt) auf meiner Spamliste.
Das problem ist, das auch meine korrekt waren - aber du sie mit "Unsinn" abqualifizieren musstest. Was nicht angemessen ist. Dich dann auch noch in Widersprüche verstrickst - "DOM ist super" und _die_ Lösung, aber es für die konkrete Aufgabe selber nicht einsetzten würdest. Und mir völlig abstruserweise unterstellst ich hätte was generelles gegen DOM. Und dich auch nicht inhaltlich auseinandersetzt. Das schöne ist, das sowas hier öffentlich ist - und sich jeder sein Bild machen kann, und wird. Und ob du dich gegen vermeintlich heretische Einflüsse schützen willst und mich in deinen Filter packst - na, die Worte "Reissack" und "China" sind dir ja ein Begriff. MfG Diez _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de

Am Friday, 19. August 2005 15:47 schrieb "Sebastian \"Marduk\" Pölsterl":
in den <?xml ..> tag am Anfang bringe. Außerdem habe ich noch keine Möglichkeit gefunden den Doctype irgendwo anzugeben.
Dazu auch noch aus der Doku: The following interfaces have no implementation in xml.dom.minidom: DOMTimeStamp DocumentType (added in Python 2.1) .... Mit anderen Worten: der Doctype ist sonst wohl ein Kind des document-nodes (macht ja auch sinn) - nur gibts den in minidom nicht. Versuch vielleicht mal eine andere implementation, etwa domlette. Diez _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de

--On 19. August 2005 17:13:08 +0200 "Diez B. Roggisch" <deets@web.de> wrote:
Am Friday, 19. August 2005 15:47 schrieb "Sebastian \"Marduk\" Pölsterl":
in den <?xml ..> tag am Anfang bringe. Außerdem habe ich noch keine Möglichkeit gefunden den Doctype irgendwo anzugeben.
Dazu auch noch aus der Doku:
The following interfaces have no implementation in xml.dom.minidom:
DOMTimeStamp
DocumentType (added in Python 2.1)
....
Mit anderen Worten: der Doctype ist sonst wohl ein Kind des document-nodes (macht ja auch sinn) - nur gibts den in minidom nicht. Versuch vielleicht mal eine andere implementation, etwa domlette.
...oder schreib die XML Präamble händisch vorne dran...das ist eine Zeile mehr Code. -aj _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de
participants (5)
-
"Martin v. Löwis"
-
"Sebastian \"Marduk\" Pölsterl"
-
Andreas Jung
-
Diez B. Roggisch
-
Walter Dörwald