c++ xml
-
hi,
ich wollte ein bisschen mit jabber und xml rumexperimentieren - kennt ihr ein gutes c++ xml tutorial oder ähnlich mitdem ich mich in das parsen von xml in c++ einarbeiten kann?mfg blan
-
Hi, schau dir mal TinyXML an. Ist ein leicht zu bedienender, in C++ geschriebener XML Parser: http://www.grinninglizard.com/tinyxml/index.html
-
hi, danke - werds mir mal anschaun. hab grad bei gaim die xmlfunktionen gesehn und folgendes xmlnode struct gefunden
typedef enum _XMLNodeType { XMLNODE_TYPE_TAG, XMLNODE_TYPE_ATTRIB, XMLNODE_TYPE_DATA } XMLNodeType; typedef struct _xmlnode { char *name; XMLNodeType type; char *data; size_t data_sz; struct _xmlnode *parent; struct _xmlnode *child; struct _xmlnode *next; } xmlnode;die frage ist jetzt, wie kann mein tag mehrere childs haben, wenn ich hier nur ein pointer auf ein child habe?
wie wird daa sowas realisiert
<message type="chat" to="blan"> </message>(das <message>-tag hat ja 2 child-attribute) ?
btw: ist es im standard definiert, dass man zB statt type="chat" auch type = "chat" schreieben darf oder ist type="chat" zwingend - muss dann ja in mein parser mit rein?
mfg blan
-
Nuja, zuerstmal ist das leider C und kein C++.
Aus dem Codeschnipsel geht für mich hervor, das child der erste Kindknoten ist, der Rest ist dann per next zu erreichen. Du hast hier also mehrere verkettete Listen.
Wahrscheinlich ist es besser, du benutzt TinyXML, anstatt dir über C-Implementierungen Gedanken zu machen, das ist in sauberem C++ geschrieben.
-
ich weiss das das C ist, aber ich wollte sowas gern selber machen - und der gaim code dafür sieht nicht wirklich schwer aus, deswegen.
mfg blan
-
Aber du fragst hier im C++ Forum! Außerdem hast du explizit nach C++ und XML gefragt und auch der TinyXML Code ist nicht schwer (wahrscheinlich sogar deutlich leichter). Hast du das mittlerweile mal probiert?
-
ne kann grad nicht an meinen linux-rechner - aber ich würde das gerne selber schreiben, ja ich wills auch in c++ schreiebn, hab aber grad nur nen C-Code gefunden ... das sollte doch nicht das problem sein oder?
wie issn das nun - sind so spaces etc in xml nach dem standard erlaubt - <message type = "chat">< / message> ?
mfg blan
-
afaik schon. Probiers halt aus, jeder (modernere) Browser hat einen XML-Parser eingebaut. Aber die Variationen der Standalonetags <message /> und <message/> funktionieren ja auch.
-
hab mir grad den source von tinyxml angeschaut - das probmlen ist, der source ist extrem groß, liegt wohl an den sachen wie utf-converter etc.., das bruach ich alles momentan nicht. habs mal mit firefox probiert sachen wie < /message> oder </ message> funktionieren nicht - falls noch jemand xml praser o.ä in sachen jabber hat (bsp sources) wäre ich sehr dankbar..
mfg blan