SAX Parser für C++

Programmiersprachen, APIs, Bibliotheken, Open Source Engines, Debugging, Quellcode Fehler und alles was mit praktischer Programmierung zu tun hat.
Antworten
joggel

SAX Parser für C++

Beitrag von joggel »

Hallo ZFX'ler,

ich wollte mal Fragen ob ihr mir eine kleine, schlanke (bitte keine externen Abhängigkeiten) SAX-Lib für C++ empfehlen könnt?
Ich möchte nämlich große XML-Dateien parsen, und SAX scheint ja dazu die bessere Wahl zu sein.

Gruß
Spiele Programmierer
Establishment
Beiträge: 426
Registriert: 23.01.2013, 15:55

Re: SAX Parser für C++

Beitrag von Spiele Programmierer »

Ich höre zum ersten mal, dass SAX am Schnellsten sein soll.

Wenn es um Performance bei der XML Verarbeitung geht, empfehle ich nämlich PugiXml und das ist DOM basiert. Die Bibliothek ist ziemlich schnell (Benchmark) und sehr einfach zu verwenden bzw. einzubinden. Ich habe damit schon problemlos hunderte MB große XML Dateien eingelesen.
joggel

Re: SAX Parser für C++

Beitrag von joggel »

Die Dateien die ich parsen möchte sind mehrere GB groß.
Mit DOM werden die ja komplette in den Arbeitsspeicher abgebildet...
Mit SAX holt man sich immer nur einzelne Teile aus der Datei.
Darum geht es mir..
Spiele Programmierer
Establishment
Beiträge: 426
Registriert: 23.01.2013, 15:55

Re: SAX Parser für C++

Beitrag von Spiele Programmierer »

Aha ok. Das ist doch noch ein Stück größer als ich dachte. ;)
Auf einem 64 Bit System sollte es aber eigentlich aber erstmal kein Problem darstellen.
Vielleicht solltest du es einfach mal auf einen Versuch ankommen lassen.
joggel

Re: SAX Parser für C++

Beitrag von joggel »

Stimmt eigentlich. Mit 64bit hat man genug platz.
Na ich wollte auf nummer sicher gehen und dachte das hier jemand schon mal so eine Lib benutzt hat.
Benutzeravatar
Schrompf
Moderator
Beiträge: 4838
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: SAX Parser für C++

Beitrag von Schrompf »

Ich benutze TinyXML, aber mehr aus historischen Gründen. Das ist ein DOM-Parser. Für Sax müsste http://rapidxml.sourceforge.net/ funktionieren.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
joggel

Re: SAX Parser für C++

Beitrag von joggel »

Also bei RapidXML steht nix auf der Webseite von SAX sondern nur das es der schnellste DOM-Parser ist...
Aber ich habe Xerces gefunden, welche sowohl per DOM als auch per SAX parst.
Ich stieß nämlich mal auf diese Lib: Libxml++, und da fand ich das schön benutzerfreundlich...
Aber diese Bibliothek hat wieder irgendwelche Abhängigkeiten zu anderen LIbs die man auch wieder bauen muss und Tod und Teufel und so :?

Naja, aber vlt brauche ich gar keinen SAX-Parser, und die großen Dateien kann ich trotzdem parsen...benutze auch TinyXML.

Trotzdem danke für die Antworten...
NytroX
Establishment
Beiträge: 358
Registriert: 03.10.2003, 12:47

Re: SAX Parser für C++

Beitrag von NytroX »

Auch auf die Gefahr hin, dass es schon zu spät ist:

Was hälst du von einem StaX parser? Das ist quasi ein Zwischending, ein Parser der nur die Elemente parsed, die man braucht.
D.h. man braucht nicht das ganze File/DOM im Memory, aber man muss sich auch nicht mit den Callbacks von SAX rumschlagen.

http://www.codeproject.com/Articles/587 ... -Cplusplus
joggel

Re: SAX Parser für C++

Beitrag von joggel »

NytroX hat geschrieben:Auch auf die Gefahr hin, dass es schon zu spät ist: [...]
Ach quatsch!! Immer her damit^^

Klingt auf jeden Fall interessant.
Ich werde es mir mal anschauen.
Danke :)
Benutzeravatar
skreutzer
Beiträge: 1
Registriert: 05.02.2018, 04:51
Alter Benutzername: proggaholic
Echter Name: Stephan Kreutzer
Kontaktdaten:

Re: SAX Parser für C++

Beitrag von skreutzer »

Ich habe einen sehr primitiven StAX-Parser in C++ gestartet, der zwar (noch?) ganz viel nicht kann oder noch nicht richtig, andererseits aber auch ohne Abhängigkeiten auskommt und vielleicht ausreichend ist.
joggel

Re: SAX Parser für C++

Beitrag von joggel »

Guten Morgen,

das Projekt, für den ich den Parser gesucht hatte, habe ich sein gelassen bzw abgebrochen.
Es ging um das parsen von OSM-Dateien, die mehrere GB groß sein können. Letzten Endes hatte ich Xercses benutzt.
Schönes Projekt aber trotzdem.
Kann man vlt im Subforum/Thread "Nützliche OpenSource Projekte" verlinken :)
Also, ich meine dein Stax-Parse.
Antworten