- Registriert
- 3 Aug. 2014
- Beiträge
- 28.573
Hallo,
ich hatte es ja in einem anderen Thread schon durchblicken lassen das ich an einem, XML zu JSON Konverter, in C, arbeite. Der Grund warum ich hier schreibe, ich würde es gerne von euch testen lassen und mir auch Verbesserungsvorschläge einholen wie man das Projekt verbessern kann.
Das Projekt liegt derzeit nur als C Sourcecode auf Github und muß kompiliert werden, eine fertige Exe wollte ich nicht verbreiten, wäre aber bei Bedarf nachzuliefern von mir, das nur kurz voher eingebracht.
Ein kurzer Überblick was funktioniert:
Parsen eine einfachen Test XML Datei und Datei-Ausgabe als JSON
Was nicht funktioniert*:
Wenn eine XML Datei eingebettete Tags verwendet, Beispiel:
[src=xml]<description><bold>Überschrift Produkt 1</bold><keywords>Klein Bunt Komisch</keywords></description>[/src]
damit kommt der Parser aktuell nicht klar weil Zeichen für Zeichen eingelesen wird und ich noch keinen Weg gefunden habe das zu umgehen.
* Dies ist in Version 2 nicht mehr der Fall und auch nested tags werden vom Parser unterstützt.
Die Handhabung erfolgt über die Befehlszeile, mit folgenden Befehlen:
"-v" = Verbose/etwas Status ausgeben
"-i" = Eingabe-Datei (Beispiel: "-iSample.xml")
"-o"= Ausgabe-Datei (Beispiel "-oAusgabe.json", ohne diesen Parameter ist der Standard "output.json" im Programmverzeichniss)
Zum Beispiel: "starlight.exe -v -iMeine.xml -oAusgabe.json"
Das Projekt auf Github mit "Makefile, C Code, Sample.xml":
https://github.com/jrie/starlight
Kompiliert werden kann mit gcc und folgenden Parametern wer nicht das Makefile verwenden will:
gcc starlight.c -std=c99 -lm -o starlight[.exe] (Dateiendung nur unter Windows)
Feedback zum Code wie auch zum Funktionsumfang sind natürlich willkommen, was mir natürlich aber auch wichtig wäre das Testen des Parsers und Ausgabemoduls mit mehr Beispieldaten. Im Netz habe ich leider nicht viel dazu gefunden, das ist auch ein Grund warum ich mich hier an euch wende.
Die Beispiel XML ist von Microsoft von MSDN.
Sollte eine XML nicht konvertiert werden können, obwohl keine Tags enthalten sind, würde ich mich freuen wenn ihr mir einen kleinen aber kompletten Ausschnitt dieser XML zeigen könnten, zum Beispiel via PN wenn die Daten diskret sind. Diese werden auch nicht von mir veröffentlicht.
Vielen Dank schon einmal fürs Lesen des Beitrages!
Anmerkungen zum Code und Feedback das ich derzeit noch nicht berücksichtigt habe da das Prototyping einer funktionstüchtigen Version im Vordergrund standen:
- Funktionen zu verwenden wo sinnvoll (fast alles in der Main)..
- Vermeidung von globalen Variablen
- Speicher für Puffer/Daten vorher zu reservieren und keine reallocs mit einzelnen Byte(s) zu machen
ich hatte es ja in einem anderen Thread schon durchblicken lassen das ich an einem, XML zu JSON Konverter, in C, arbeite. Der Grund warum ich hier schreibe, ich würde es gerne von euch testen lassen und mir auch Verbesserungsvorschläge einholen wie man das Projekt verbessern kann.
Das Projekt liegt derzeit nur als C Sourcecode auf Github und muß kompiliert werden, eine fertige Exe wollte ich nicht verbreiten, wäre aber bei Bedarf nachzuliefern von mir, das nur kurz voher eingebracht.
Ein kurzer Überblick was funktioniert:
Parsen eine einfachen Test XML Datei und Datei-Ausgabe als JSON
Was nicht funktioniert*:
Wenn eine XML Datei eingebettete Tags verwendet, Beispiel:
[src=xml]<description><bold>Überschrift Produkt 1</bold><keywords>Klein Bunt Komisch</keywords></description>[/src]
damit kommt der Parser aktuell nicht klar weil Zeichen für Zeichen eingelesen wird und ich noch keinen Weg gefunden habe das zu umgehen.
* Dies ist in Version 2 nicht mehr der Fall und auch nested tags werden vom Parser unterstützt.
Die Handhabung erfolgt über die Befehlszeile, mit folgenden Befehlen:
"-v" = Verbose/etwas Status ausgeben
"-i" = Eingabe-Datei (Beispiel: "-iSample.xml")
"-o"= Ausgabe-Datei (Beispiel "-oAusgabe.json", ohne diesen Parameter ist der Standard "output.json" im Programmverzeichniss)
Zum Beispiel: "starlight.exe -v -iMeine.xml -oAusgabe.json"
Das Projekt auf Github mit "Makefile, C Code, Sample.xml":
https://github.com/jrie/starlight
Kompiliert werden kann mit gcc und folgenden Parametern wer nicht das Makefile verwenden will:
gcc starlight.c -std=c99 -lm -o starlight[.exe] (Dateiendung nur unter Windows)
Feedback zum Code wie auch zum Funktionsumfang sind natürlich willkommen, was mir natürlich aber auch wichtig wäre das Testen des Parsers und Ausgabemoduls mit mehr Beispieldaten. Im Netz habe ich leider nicht viel dazu gefunden, das ist auch ein Grund warum ich mich hier an euch wende.
Die Beispiel XML ist von Microsoft von MSDN.
Sollte eine XML nicht konvertiert werden können, obwohl keine Tags enthalten sind, würde ich mich freuen wenn ihr mir einen kleinen aber kompletten Ausschnitt dieser XML zeigen könnten, zum Beispiel via PN wenn die Daten diskret sind. Diese werden auch nicht von mir veröffentlicht.
Vielen Dank schon einmal fürs Lesen des Beitrages!
Anmerkungen zum Code und Feedback das ich derzeit noch nicht berücksichtigt habe da das Prototyping einer funktionstüchtigen Version im Vordergrund standen:
- Funktionen zu verwenden wo sinnvoll (fast alles in der Main)..
- Vermeidung von globalen Variablen
- Speicher für Puffer/Daten vorher zu reservieren und keine reallocs mit einzelnen Byte(s) zu machen
Zuletzt bearbeitet: