Ein XML-Element ausgeben



  • Hallo zusammen,

    ich bin gerade dabei, xml mit TinyXml als Parser zu lernen und stehe vor einem Problemchen.

    Mit doc.print( stdout ); gibt man das gesamte xml-Dokument auf dem Bildschirm (MSDOS) aus.
    Ich wüsste gerne, wie ich ein Element ausgeben kann?
    Im Beispiel unten möchte ich den Namen und Adresse ausgeben:

    <Personalien>
     <Person Name="XY" Adresse="b-str.6">
     .
     .
    </Personalien>
    

    danke



  • Durch die Nodes Iterieren ist recht einfach:

    TiXmlNode* child = NULL;
    std::string temp;
    std::stringstream stream;
    while( child = node->IterateChildren( child ) )
    	{
    		temp = child->Value();
    		std::cout << temp << std::endl;
    	}
    }
    

    Die Attribute bekommst du mit:

    TiXmlAttribute* attr = node->FirstAttribute();
    if(attr == NULL)
    	return;
    else
    {
    	std::string temp;
    	while(attr != NULL)
    	{
    		temp = attr->Name();
    		std::cout << temp << std::endl;
    		attr = attr->Next();
    	}
    }
    


  • Vielen Dank Phlox81 🙂

    Grüsse, leona



  • Hallo,

    das Thema interessiert mich auch und habe mit dem Code von Phlox81 versucht die Attribute (Name und Adresse) auszugeben, aber beim Kompilieren bekomme ich in der Zeilen wo std:: steht, immer Fehlermeldung
    Wenn ich dann diese Zeilen zwischen #ifdef TIXML_USE_STL und endif schreibe, wird zwar keinen Fehler mehr angezeigt, aber ich es wird nichts ausgegeben!!?
    Kann mir bitte jemand helfen?
    Danke,


Anmelden zum Antworten