Code: Alles auswählen
<?xml version="1.0"?>
<root>
<meta>
<!-- small data -->
</meta>
<info>
<!-- small data -->
</info>
<content>
<!-- BIG data -->
</content>
</root>
Code: Alles auswählen
<?xml version="1.0"?>
<root>
<meta>
<!-- small data -->
</meta>
<info>
<!-- small data -->
</info>
<content>
<!-- BIG data -->
</content>
</root>
Und Expat ist etwa nicht platformunabhängig? Wenn du SAX nutzt, kann dir der Parser mehr oder weniger egal sein, SAX ist sowieso überall gleich (unangenehm).droptix hat geschrieben:Welchen Parser verwendet Python standardmäßig? Ich dachte das wäre Expat... Da ich gern was plattformübergreifendes hätte
Klar ist Expat plattformabhängig, aber ich dachte in Python "eingebaut". Hab das so verstanden, dass Python für SAX nur eine Schnittstelle bietet. Aber ich gebe zu, dass es etwas unübersichtlich ist…Leonidas hat geschrieben:Und Expat ist etwa nicht platformunabhängig? Wenn du SAX nutzt, kann dir der Parser mehr oder weniger egal sein, SAX ist sowieso überall gleich (unangenehm).
D.h. das pyexpat Modul muss separat installiert werden (es wird nicht im Global Module Index aufgelistet)?xml.parsers.expat hat geschrieben:The xml.parsers.expat module is a Python interface to the Expat non-validating XML parser. […] This module uses the pyexpat module to provide access to the Expat parser.
SAX kenne ich nur in Verbindung mit fertigen SAX-Parsern. Frage: liefert Python einen mit? Oder ist das xml.sax Modul bereits alles, was ich benötige?xml.sax hat geschrieben:The xml.sax package provides a number of modules which implement the Simple API for XML (SAX) interface for Python. The package itself provides the SAX exceptions and the convenience functions which will be most used by users of the SAX API.
Ist es doch. Alles was im Global Module Index dukumentiert ist, ist in der Stdlib. Ich sehe dein Problem nicht.droptix hat geschrieben:Klar ist Expat plattformabhängig, aber ich dachte in Python "eingebaut". Hab das so verstanden, dass Python für SAX nur eine Schnittstelle bietet. Aber ich gebe zu, dass es etwas unübersichtlich ist…Leonidas hat geschrieben:Und Expat ist etwa nicht platformunabhängig? Wenn du SAX nutzt, kann dir der Parser mehr oder weniger egal sein, SAX ist sowieso überall gleich (unangenehm).
Hmm, wieso? Solange das XML-Dokument nicht zu groß ist, kann man es doch problemlos einlesen. Wenn es tatsächlich zu langsam wird, kann man sich immer noch was überlegen. Es ist schon möglich, dass hier ein Fall von Premature Optimization vorliegt. Ist DOM tatsächlich ein Performance-Problem oder nur ein geschätztes Problem?BlackJack hat geschrieben:@Leonidas: Das XML soll nicht ganz verarbeitet werden, sondern nur ein verhältnismässig kleiner Teil am Anfang. Damit fällt DOM im Grunde raus.
BIG data kann ja alles mögliche meinen. Es kann ja immer noch klein genug sein, so dass man es mit dem kompletten Parsen angehen kann. Sowas muss man eben ausprobieren. Bevor ich zu SAX greifen würde, tät ich wirklich erst nachsehen ob es wirklich ein ausreichend großes Problem ist.BlackJack hat geschrieben:Ich bin halt davon ausgegangen, dass der Kommentar in Zeile 10 im ersten Beitrag ernst gemeint war.
Und, ist es mit Minidom zu langsam für dich?droptix hat geschrieben:Na, gehen wir mal davon aus, dass in <!-- BIG data --> wirklich zu große Daten stehen, also nehmen wir ruhig 10.000 bis 50.000 Zeilen an.