2010-03-03 7 views
0

J'essaie d'obtenir std :: string de la valeur de l'attribut avec TinyXml. La seule chose que je peux obtenir est un const char * val, et je ne trouve aucun moyen de convertir de const char * en une chaîne std :: string.Tinyxml pour imprimer les attributs

donc deux réponses possibles à cela: 1. Comment obtenir une chaîne d'un attribut avec TinyXml? 2. Comment convertir const char * val en string val.

c'est le code que j'ai maintenant:

TiXmlElement* data; 
data->Attribute("some_name"); // return const char * which seems like unconvertible. 

Après googeling, j'ai essayé ceci:

char * not_const= const_cast<char *> (data->Attribute("some_name")); 

Il n'y a aucune erreur dans le code lui-même, mais après la compilation et l'exécution que je reçois des exceptions . Std :: string a un constructeur qui prend le caractère char const *

+0

TinyXML n'est pas une très bonne bibliothèque XML. Je recommanderais plutôt LibXML ++, puisque vous utilisez C++. – Tronic

Répondre

2

Vous n'avez pas besoin de char * pour cela. Cependant, sachez que std :: string n'aime pas les valeurs NULL, donc n'en donnez pas.

+1

ne peux pas croire que j'ai passé plus d'une heure sur cette merde. Merci beaucoup! – shaimagz

Questions connexes