Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Xml-parser gesucht

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
08.01.2004, 10:57 Uhr
~Luke1410_
Gast


Ich habe ein kleines Setup-Programm geschrieben und soll jetzt die Configs im XML-Kompatiblen Format (bisher Ini) schreiben.
Das ist soweit auch alles fertig.

Einzig und alleine fehlt mir noch das Auslesen dieser Config-Daten.

Ich habe mir verschiedene Möglichkeiten (XML-Parser) angeschaut, jedoch für meine Anwendung nichts passendes gefunden:

- Xcerces XML-Parser: Die beizulegende DLL (2 MB) wäre zu groß... Das Programm alleine ist letztendlich nur knapp 200kb groß. Dem Anwender kann ich nicht zumuten nochmal 2 MB runterladen zu müssen.

- über Managed C++ mit dem .Net-Framework: Ebenfalls zu groß. Der Anwender müsste sich das .Net-Framework installieren, was 11-23 MB sind. Das macht keiner, nur um ein kleines Config-Prog zu benutzen

- firmeneigenene XML-Engine-Klasse: Hält sich leider nicht an den XML-Standard und unterstützt keine Attribute (welche in meinem Config-Script vorkommen und ich es nicht einsehe, warum ich die in Tags umschreiben soll :-) ).

- eigene XML-Engine programmieren: Wenn ich nichts anderes finde, werde ich das so auch machen... Aber ich arbeite nicht gerne nach dem Motto "Das Rad immer und immer wieder zu erfinden" und einen minimalen Parser zu proggen dauert ca. 2-3 Tage (mit Tests etc. wohl 1 Woche).


Ich suche also einen XML-Parser (XML-Reader), den ich möglichst einfach in meiner MFC-Anwendung verwenden kann, um aus einer Config-XML-Datei, die nur Elementen (Tags) und Attributen besteht, die Werte auszulesen.
Sachen wie Entities oder Notations muss er gar nicht beherschen und auch gegen eine DTD Verifizieren ist nicht nötig... Genausowenig muss er die XML-Datei schreiben können.
Einzige Eisnchränkung: Die Distri sollte nicht größer als 500 kb werden (also 300 kb für den Parser).
Kennt da jemand eine passende Lösung oder muss ich mich wirklich hinsetzen und eine eigene Reader-Klasse entwerfen?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
08.01.2004, 15:42 Uhr
Bruder Leif
dances with systems
(Operator)


Schau mal unter www.thefreecountry.com oder www.programmersheaven.com, vielleicht ist da was dabei. Wenn nicht, schreib Dir nen eigenen Parser. Sollte kein allzu großes Problem sein, die Grammatik ist schön einfach bei XML, und wenn Du eh keine DTD und Co brauchst...
--
Mit 40 Fieber sitzt man nicht mehr vor dem PC.
Man liegt im Bett.
Mit dem Notebook.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
08.01.2004, 18:34 Uhr
Spacelord
Hoffnungsloser Fall


Hi,
schau mal hier .

Mfg
Spacelord
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
09.01.2004, 16:40 Uhr
~Luke1410_
Gast


Danke für eure Antworten.
War leider nichts 100%ig passendes dabei. Werde also meine eigene Reader-Klasse zusammenbauen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
13.01.2004, 14:33 Uhr
RHBaum




Zitat:
über Managed C++ mit dem .Net-Framework


Der "normale" MSXML ActiveX parser (msxml.dll glaub ich) ist beim InetExplorer bei, vielleicht ja bei euch standard ... der ist aber glaub ich, auch nicht klein :p
Ueber standardkonformitaet kann ich nix sagen, ich nehm leiber den Xerces.

Ciao ....

2 MB ist doch "peanuts" :p Wenn ich meinen guten Tag hab, und lustig libs einbinde ... dann aechzt die Festpladde :p
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
13.01.2004, 17:36 Uhr
~Luke1410_
Gast


Scheint er mit zu installieren... werd ich später ändern Habe jetzt eine einfache Version fertig, die einigermaßen XML-komform arbeitet (Probleme gibt's noch, da er die Kommentare nicht ausfiltert und diese im Value mit ausgibt), aber da es eh MEINE Konfig-Datei ist, lass ich das vorerst dabei...

Etwas umständlich ist lediglich die Fehlerbehandlung... da würde mir die Validierungsfunktion gegen eine DtD einige Arbeit abnehmen...

2 MB sind schon peanuts... Da das Prog aber jedem "aufgezwungen" wird muss ich auch an die Modemnutzer denken... und nur für den kleinen Funktionsumfang, den das Tool bietet, dem User noch zuzumuten, 3 MB runterzuladen, kann ich nicht machen.

Dann lieber auf was kleines zurückgreifen, oder etwas, was ca. 90% der Anwender schon haben.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
14.01.2004, 09:54 Uhr
RHBaum



Versteh ich schon ...

Nur im heutigen Zeitalter ist nen PC ohne Highspeed Internetanbindung nimmer operapel, zumindest wenn man den Pressesprechern von M$ und den Werbeversprechern von T-Error glaubt.

In Angesichts dieses Verlaufes, gepraegt durch die Haeufigkeit und Umfang von "ServicePacks" und Quasi MoechtegernStandards ala .Net etc ... sind meine Hemmschwellen auch irgendwie gesunken

Aber wenn ich jetzt an deine "Probleme" denke, weis ich doch endlich wie gut mein (Online)Leben ist, in ner Grossstadt mit dutzenden sich konkurrierenden Internet-Anbietern wohlgemerkt ! Danke !!!

Im Ernst:
DIe Arbeit fuer ne Pruefung gegen ne DTD selber zu proggen, wuerd ich mir ned machen ... dann lieber die 2MB den kunden aufdraengen.
Ausserdem ists ne Investition in ne Zukunft. Wenn nen Parser selber Schreibst, bist den rest deines lebens meist dazu verdonnert, den auch weiterzupflegen und an nachfolgende Standards anzupassen. Spaetestens wenn M$ nen neuen XML Viewer ins BS integriert, der nur noch MS-XML ab version 7.0 lesen kannst, wollen die user deine config files in dem Format ! :p
Dann lieber drauf hoffen, dass die Apache Group nachzieht :p

Noch ne Frage ...
Codest Du dein Config-Funktionalitaet auf dein Project-bezogen, oder machst das eher genersich ? Ich darf auch bald noch irgend ne bib schreiben, wo sich einstellungen in XML files speichern lassen sollen. Sollen dann alle unsere Module verwenden. Allerdings werd ich den Xerces verwenden.
Vielleicht koennte man sich da austauschen ....
Meine Idee ist sowas wie ne Objectbiblo, die abzuleitende Basisklassen zur verfuegung stellt, und damit einfach "serialisierbar" werden. Also aehnlich wie die COBject/IMPLEMENT_SERIALIZE geschichte in der MFC.

Ciao ...

Dieser Post wurde am 14.01.2004 um 09:59 Uhr von RHBaum editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
14.01.2004, 10:53 Uhr
~Luke1410_
Gast


@Frage: Ist derzeit nur auf mein Projekt beschränkt. Generische Funktionalität gibt's nur am Rande... Wenn, dann werde ich es in einer der nächsten Versionen ausbauen, bin mir aber, da das Verhältnis zum Nutzen einfach zu gering ist, noch nicht sicher, ob ich das überhaupt generisch aufbaue oder weiterhin nach dem Prinzip mache: "Wenn's in der Config steht, dann mach es, wenn's nicht drin steht, lass es".

Soweit ich dir helfen kann, immer gerne...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: