XML & C++
-
Gibts das auch als ebook?
-
hat nich irgendjemand ne lösung??? ist echt dringend....
-
Wirklich "DLL" - also Windows ?
Gut : MSXML SDK
Der Parser ist hervorragend.
Falls bei Dir ( => Systemsetuerung => Software ) keins installiert ist:
Such Dir mal die Version(en) der msxml*.dll heraus die auf Deinem System installiert / sind und lad Dir ein passendes MSXML SDK von MS herunter.
Da drin ist ein gute Doku zu SAX und DOM und wie man das mit ATL/COM/C++ einsetzt.
Grüsse
*this
P.S.: Was meinst Du eigentlich mit "Funktionen auslesen" ?
-
thx werds mal probieren...
achso... meinte natürlich die funktionen in der dll bereitstellen, nicht auslesen.
-
Ansonsten TinyXML
-
thx werds mal probieren...
achso... meinte natürlich die funktionen in der dll bereitstellen, nicht auslesen.
-
Erhard Henkes schrieb:
Ansonsten TinyXML
Willste mich verarschen?

-
Es gibt recht viele XML-Parser für C++. Das Xerces bei dir nicht funktioniert, ist komisch. Denn es muß funktionieren, da es ein weit verbreiteter Parser ist und keine Eintagsfliege.
Völlig unabhängig davon, gibt es von MS mittlerweile zwei XML-Parser. Den altbekannten MSXML und seit neuestem den XmlLite, der extra für C++ entwickelt wurde, da MSXML nicht für C++ spezialisiert ist.
-
Artchi schrieb:
Es gibt recht viele XML-Parser für C++. Das Xerces bei dir nicht funktioniert, ist komisch. Denn es muß funktionieren, da es ein weit verbreiteter Parser ist und keine Eintagsfliege.
Völlig unabhängig davon, gibt es von MS mittlerweile zwei XML-Parser. Den altbekannten MSXML und seit neuestem den XmlLite, der extra für C++ entwickelt wurde, da MSXML nicht für C++ spezialisiert ist.
Suchte der OP nicht was mit DTD Unterstützung?

Ernsthaft:
Versteh ich das richtig kein DOM, kein "echtes SAX" sondern so'n abgespecktes pull-Modell ??!?
Btw was ist "Systemeigenes C++" ?!?=> Was soll das denn sein? <=
Grüsse
Gast++
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum Rund um die Programmierung verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Suchte der OP nicht was mit DTD Unterstützung?
Das der Fragesteller umfangreichen DTD-Support benötigt, hab ich übersehen (stand im ersten Posting nicht drin). Aber XmlLite bietet minimalen DTD-Support an, wenn auch nicht in dem Umfang wie MSXML:
DTD Support
Document Type Definition (DTD) support is limited to entity expansion and default attributes.When a DTD is used, DTD default attributes are returned just as if they were normal attributes; the only difference is that default attributes return TRUE when the IsDefault method is called.
For example with a DTD:
<!ATTLIST myElement myAttr CDATA "123">
If the myAttr attribute on the myElement element is not defined in the XML stream, it will be given the default value of 123.
Ich bin aber kein XML-Speci, weshalb ich dazu auch weiter nichts sagen kann.
Versteh ich das richtig kein DOM, kein "echtes SAX" sondern so'n abgespecktes pull-Modell ??!?
Und, warum nicht? Ich muß beruflich auch mit XML rumhantieren, habe aber selber noch nie SAX benötigt. Komme für meine Anwendungen mit DOM voll und ganz aus. Und unechtes SAX gibt es ja wohl kaum, oder? Es gibt DOM und SAX. Warum bewertest du das?

Btw was ist "Systemeigenes C++" ?!?
Ja, der Artikel ist ein wenig strange, was die Begrifflichkeit angeht.
Aber XmlLite ist nunmal eine reine C++-Library, im Gegensatz zu MSXML (die man von jeder COM-fähigen Sprache aus nutzen kann). Und laut MS ist XmlLite besonders auf Performance und einfache Benutzung getrimmt, dafür gibts halt weniger Features. (es benötigt nicht mal ein .NET-Installation!) Wer mehr Features benötigt und/oder kein C++ benutzt, kann auf eine andere Library ausweichen (MSXML oder .NET-Framework).
Insofern ist "Systemeigenes C++" nicht falsch, es ist halt für einen C++ler einfacher zu benutzen.
-
libxml++ ist sehr umfangreich was die Funktionalität anbelangt (DTDs et al)
-
ok hab mir jetzt mal libxml++ runtergeladen. leider komme ich auch hier nicht wirklich weiter, da ich mit der hilfe nicht wirklich was anfangen kann. (und das liegt nicht am englisch). könnte evt. jemand nen beispiel code posten für libxml++?
achso... xerces hab ich jetzt zum "laufen" bekommen, ist aber im prinzip das gleiche wie bei libxml++...oder weiß evtl. jemand ob es schon irgendwelche beispiel-programme in c++ gibt, die xml daten auslesen?
-
http://libxmlplusplus.sourceforge.net/docs/manual/html/ar01s02.html#id2472569
http://www.google.com/codesearch
-
ähm ja wie ich schon sagte.... die hilfe bring mich nicht wirklich weiter. und googlen tu ich schon seit stunden....
-
M@tt schrieb:
ähm ja wie ich schon sagte.... die hilfe bring mich nicht wirklich weiter. und googlen tu ich schon seit stunden....
Dann versuch dein Problem doch näher zu beschreiben. Das Beispiel zeigt doch, wie man eine XML-Datei parst und die Nodes auswertet.
-
@M@tt:
M@tt schrieb:
ähm ja wie ich schon sagte.... die hilfe bring mich nicht wirklich weiter. und googlen tu ich schon seit stunden....
Hast Du MSXML denn jetzt mal probiert?
Brauchst ein kleines Demo dafür?Artchi schrieb:
Und unechtes SAX gibt es ja wohl kaum, oder? Es gibt DOM und SAX. Warum bewertest du das?

Ich ahnte schon irgendwie dass da noch was kommt...

Um die Erklärung wollte ich mich eigentlich drücken:
SAX2 nutzt ein Push-Modell; dazu gehören Events und Handler - letztere also als callbacks oder Ableitung einer Handlerklasse implementiert.
So wie ich die Doku verstehe ist dieses Read() als Ersatz gedacht - man holt sich eine Node und kann dann damit verfahren wie man's braucht.
Das ist zwar an Sax angeehnt aber halt ein Pull-Parser.Und DOM gibt's gar nicht.
Also : ! ( SAX || DOM ).Oder?
Artchi schrieb:
Btw was ist "Systemeigenes C++" ?!?
Ja, der Artikel ist ein wenig strange, was die Begrifflichkeit angeht.
Aber XmlLite ist nunmal eine reine C++-Library, im Gegensatz zu MSXML (die man von jeder COM-fähigen Sprache aus nutzen kann).Auch das versteh ich nicht - es ist doch COM, oder nicht?
Was soll daran jetzt "speziell für C++" sein?Artchi schrieb:
Und laut MS ist XmlLite besonders auf Performance und einfache Benutzung getrimmt, dafür gibts halt weniger Features. (es benötigt nicht mal ein .NET-Installation!) Wer mehr Features benötigt und/oder kein C++ benutzt, kann auf eine andere Library ausweichen (MSXML oder .NET-Framework).
Insofern ist "Systemeigenes C++" nicht falsch, es ist halt für einen C++ler einfacher zu benutzen.Ich arbeite jetzt seit 8 Jahren mit MSXML; meistens mit C++/ATL.
Würdest Du mir raten mich mit XMLLite zu beschäftigen?Grüsse
Gast++
-
also MSXML hab ich noch nicht ausprobiert.... bin aber gerade dabei (runterladen, installieren, etc.). und klar, ne demo wäre nicht schlecht, wenn du eine hast.... Gast++
-
M@tt schrieb:
also MSXML hab ich noch nicht ausprobiert.... bin aber gerade dabei (runterladen, installieren, etc.). und klar, ne demo wäre nicht schlecht, wenn du eine hast.... Gast++
Dann erzähl man mit welchem Compiler / Version Du arbeitest wenn Du's installiert hast.
Grüsse
Gast++
-
also arbeite mit Microsoft Visual Studio 6.0 Professional.
wenn es von bedeutung ist... ich arbeite auf ner virtuellen maschine (xp), da vs auf vista oft genug "hängen bleibt".