Bonjour
Je programme en ce moment un outil en C++, utilisant la libxml2. Cette librairie utilise de nombreux types qui lui sont propres afin de combler des lacunes du C : xmlChar est par exemple le remplaçant du char. (http://xmlsoft.org/html/libxml-xmlstring.html(...))
Je souhaite convertir ce xmlChar en std::string mais je n'y arrive pas !
Voici le code source :
node = xmlobject->nodesetval->nodeTab[0];
xmlChar *nom_paquet = xmlGetProp(node, xmlCharStrdup("name"));
resultat = std::string(nom_paquet);
node est un xmlNodePtr, et resultat un std::string.
G++ n'aime pas ça, et me le fait comprendre par un :
error: invalid conversion from `xmlChar*' to `const char*'
error: initializing argument 1 of `std::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with _CharT = char, _Traits = std::char_traits, _Alloc = std::allocator]'
concernant tous deux la dernière ligne (resultat = ...)
Quelqu'un peut-il m'indiquer une solution ?
Merci d'avance
PS : je souhaiterais à tout prix éviter de changer de librairie pour l'XML !
# unsigned
Posté par Troy McClure (site web personnel) . Évalué à 4.
[^] # Re: unsigned
Posté par Pinaraf . Évalué à 1.
Mon bouquin sur le C++ est trop vieux pour connaître la STL ou les namespaces, et il ne parle pas de caste. Transtypage c'est ça ?
Merci pour ta réponse !
# problème de cast
Posté par hope . Évalué à 4.
resultat = std::string(reinterpret_cast<const char*>(nom_paquet));
et cela devrait fonctionner.
# Merci à vous
Posté par Pinaraf . Évalué à 1.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.