TinyXML Objekte aus einem String statt einer XML Datei parsen

Jimijimbo

Grünschnabel
Hi,
ich suche nach einer Möglichkeit, um XML Objekte über TinyXML nicht extra aus einer Datei zu lesen, wie folgendes:

//Open the Document with TinyXml
TiXmlDocument doc("ControllMsg.xml");
bool loadOkay = doc.LoadFile();
if(!loadOkay){
printf("Error Load 'ControllMsg.xml'-> Error:%s\n",doc.ErrorDesc());
exit(EXIT_FAILURE);
}
//////////////////////////////////
//Find the Objects and their values
TiXmlElement* root=doc.RootElement();
...
sondern möchte ich einen String Parsen und die Objekte verwenden, aber wie?
--->:confused:
TiXmlDocument* doc;
TiXmlElement* root;
doc->Parse(string,0,TIXML_DEFAULT_ENCODING);
root=doc->RootElement();
<----- :confused:
so hab ich es mir vorgestellt, das geht aber nicht. Wer kann mir weiterhelfen?
Grüße Jimi
 
Hi.

Hast du denn schonmal in die Dokumentation geschaut?!

C++:
TiXmlDocument doc;

doc.Parse("<a></a>");
Gruß

\edit: Mea culpa. Ich hab wohl zu schnell drübergelesen. Aber was heißt denn für dich "es geht nicht"? Was kommt denn raus? Wo ist das Problem?

\edit2: OK. Wieder zu schnell. Du verwendest dort Zeiger, die du nicht mit einer Instanz initialisierst. Warum willst du dort unbedingt einen Zeiger auf TiXmlDocument verwenden?
 
Zuletzt bearbeitet:
Hhmnmn, vielen Dank.:)
Ich bin ständig mit Ausnahmebehandlungen konfrontiert worden,
da ich die ganze Sache mit Zeigern implementieren möchte.
Ich habe natürlich nur vergessen für den Datentyp speicher zu alloziieren.
Denn:
TiXmlDocument* doc("Msg.xml");
und
TiXmlDocument* doc;
funktioniert nicht bzw. reicht nicht aus.

Aber mit
TiXmlDocument* doc=new TiXmlDocument;
TiXmlDocument doc("Msg.xml");
TiXmlDocument doc;

lässt es sich natürlich anstellen.
Ich habe auch nicht davon losgelassen, dass "...Document" nicht zwingend eine Datei erfordert!
(Und ich geb zu, die Doku habe ich nur flüchtig betrachtet)
Also Danke! :)

Jimi
 
Zurück