TinyXml Problem



  • Ich habe ein kleines Problem mit TinyXml was ich in der Doku oder in der Beispiel Datei nicht richtig herausgelesen habe.
    Wie kann ich den Inhalt vom Element der Xml Datei herauslesen ?

    <ct value="Convert">Hello World</ct>
    

    Also hier im Beispiel "Hello World". Die Attribute auszulesen ist kein Problem da gibt ja Attribute() aber den Inhalt des Elementes komme ich einfach nicht ran habe schon Versucht den Node in Text zu konvertieren mittels ToText() und dann mit Value() auszulesen aber da wird nix angezeigt.

    Hier ein kleiner Code Auschnitt

    TiXmlNode* node;
    TiXmlElement* pluginElement
    TiXmlElement* pluginChild;
    TiXmlText* text;
    
    for (node=pluginElement->FirstChildElement("ct"); node; node=pluginElement->IterateChildren(node))
     {
      pluginChild = node->ToElement();
      text = pluginChild->FirstChild()->ToText();
      cout << pluginChild->Attribute("value") << text->Value() << endl;
     }
    

    Ich hoffe einer benutzt tinyXml und kann mit weiterhelfen.

    MFG
    xmarvel

    P.S.: Vielleicht habe ich das im falschen Subforum gepostet wenn wusste aber nicht zu welchen Subforum das am besten passt

    Edit: Code etwas angepasst



  • Sieht fuer mich richtig aus.. hast du mal ein 'assert(text)' eingebaut? ToText() gibt 0 zurueck wenn der Typ nicht stimmt.
    Anstatt Value() koenntest du auch versuchen, den inhalt von 'text' mit den Streamfunktionen auszulesen (wenn du die funktionalitaet in TinyXML einkompiliert hast):

    #include <stringstream>
    
    std::stringstream s;
    s << (*text);
    cout << s.str() << endl;
    

    oder so aehnlich.

    Achja: Evtl. waere node->NextSiblingElement("ct") besser statt plugin->IterateChildren().



  • Hab nichts an den obrigen Code verändert sondern nur den Code mit STL Support (in der Makefile mit TINYXML_USE_STL := YES) compiliert und jetzt funktioniert es ? 😕
    Aber ich habe keine Ahnung wieso abgesehen vom cout wird doch nirgends die STL benutzt. (cout ist nur zu Testzwecken da wird nacher wieder herausgenommen)
    Die Cout Anweisung habe ich auch mal durch ein printf ersetzt dann kommt auch wieder nix raus wenn STL Support abgeschaltet ist.
    Interessieren würde mich das schon wieso das ohne STL Support nicht funktioniert ?

    MFG
    xmarvel



  • Dieser Thread wurde von Moderator/in kingruedi aus dem Forum Linux/Unix 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.



  • TINYXML_USE_STL heisst dass txml intern die stl verwendet

    warum kompilierst dus nich im debug modus und gehst schritt für schritt durch den txml code wenn du wissen willst warums nich tut


Anmelden zum Antworten