SAX Parser für C++

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

SAX Parser für C++

Beitragvon joggel » 07.04.2016, 19:39

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ß
bald mit neuem Avatar
Benutzeravatar
joggel
Establishment
 
Beiträge: 1334
Registriert: 06.11.2007, 19:06
Wohnort: Dresden

Re: SAX Parser für C++

Beitragvon Spiele Programmierer » 07.04.2016, 23:03

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.
Spiele Programmierer
Establishment
 
Beiträge: 341
Registriert: 23.01.2013, 16:55

Re: SAX Parser für C++

Beitragvon joggel » 07.04.2016, 23:06

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..
bald mit neuem Avatar
Benutzeravatar
joggel
Establishment
 
Beiträge: 1334
Registriert: 06.11.2007, 19:06
Wohnort: Dresden

Re: SAX Parser für C++

Beitragvon Spiele Programmierer » 07.04.2016, 23:18

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.
Spiele Programmierer
Establishment
 
Beiträge: 341
Registriert: 23.01.2013, 16:55

Re: SAX Parser für C++

Beitragvon joggel » 07.04.2016, 23:56

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.
bald mit neuem Avatar
Benutzeravatar
joggel
Establishment
 
Beiträge: 1334
Registriert: 06.11.2007, 19:06
Wohnort: Dresden

Re: SAX Parser für C++

Beitragvon Schrompf » 08.04.2016, 00:44

Ich benutze TinyXML, aber mehr aus historischen Gründen. Das ist ein DOM-Parser. Für Sax müsste http://rapidxml.sourceforge.net/ funktionieren.
Häuptling von Dreamworlds. Baut an was Neuem. Hilft nebenbei nur höchst selten an der Open Asset Import Library mit.
Benutzeravatar
Schrompf
Thomas Ziegenhagen
Moderator
 
Beiträge: 3728
Registriert: 26.02.2009, 00:44
Wohnort: Dresden
Benutzertext: Lernt nur selten dazu

Re: SAX Parser für C++

Beitragvon joggel » 08.04.2016, 09:46

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...
bald mit neuem Avatar
Benutzeravatar
joggel
Establishment
 
Beiträge: 1334
Registriert: 06.11.2007, 19:06
Wohnort: Dresden

Re: SAX Parser für C++

Beitragvon NytroX » 08.04.2016, 18:41

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/587488/Streaming-XML-parser-in-Cplusplus
NytroX
Establishment
 
Beiträge: 149
Registriert: 03.10.2003, 12:47

Re: SAX Parser für C++

Beitragvon joggel » 08.04.2016, 19:16

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 :)
bald mit neuem Avatar
Benutzeravatar
joggel
Establishment
 
Beiträge: 1334
Registriert: 06.11.2007, 19:06
Wohnort: Dresden

Re: SAX Parser für C++

Beitragvon skreutzer » 05.02.2018, 06:01

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.
Benutzeravatar
skreutzer
Stephan Kreutzer
 
Beiträge: 1
Registriert: 05.02.2018, 05:51
Alter Benutzername: proggaholic

Re: SAX Parser für C++

Beitragvon joggel » 05.02.2018, 07:09

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.
bald mit neuem Avatar
Benutzeravatar
joggel
Establishment
 
Beiträge: 1334
Registriert: 06.11.2007, 19:06
Wohnort: Dresden


Zurück zu Programmiersprachen, Quelltext und Bibliotheken

Wer ist online?

Mitglieder in diesem Forum: Ahrefs [Bot], starcow und 3 Gäste