[TinyXML] Récupérer des données d'un XML vers une variable
Bonjour à tous, premier post sur ce forum pour moi, j'espère ne pas faire de doublons, mais malgré des recherches approfondis sur Devellopez et tinyxml, je ne trouve pas de solutions à mon problème :
Voici mon code source pour commencer (basé sur un code trouvé sur ce forum, désolé je n'ai plus le nom de l'auteur) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
|
#include "tinyxml.h"
#include <iostream>
#include <string>
using namespace std;
void Parcours( TiXmlNode* node, int level = 0 )
{
cout << string( level*3, ' ' ) << "[" << node->Value() << "]";
if ( node->ToElement() )
{
TiXmlElement* elem = node->ToElement();
for ( const TiXmlAttribute* attr = elem->FirstAttribute(); attr; attr = attr->Next() )
cout << " (" << attr->Name() << "=" << attr->Value() << ")";
}
cout << "\n";
for( TiXmlNode* elem = node->FirstChild(); elem; elem = elem->NextSibling() )
Parcours( elem, level + 1 );
}
int main( int argc, char* argv[] )
{
TiXmlDocument doc( argv[1]?argv[1]:"../../data/tests_xml/profil.xml" );
bool loadOkay = doc.LoadFile();
if ( !loadOkay ) {
cerr << "Could not load test file. Error='" << doc.ErrorDesc() << "'. Exiting.\n";
system("pause");
return 1;
}
printf("\n======================\n-Fichier \"profil.xml\"-\n======================\n");
//Affichage hiérarchisé
Parcours( doc.RootElement() );
printf("\n======================\n######################\n======================\n");
//Autre méthode pour afficher le contenu d'un xml ://
/*=======================================================================================*/
printf("\n======================\n-Fichier \"profil.xml\"-\n======================\n");
//Affichage original du fichier
doc.Print( stdout );
printf("\n======================\n######################\n======================\n");
/*=======================================================================================*/
//Normalement il y a un processus ici pour demander l'age à l'utilisateur
long age_player = 5;
//Ecriture dans le fichier profil.xml
//Déclaration
TiXmlNode* node = 0;
TiXmlElement* profilElement = 0;
TiXmlElement* ageElement = 0;
//Navigation
node = doc.FirstChild( "profil_def" );
assert( node );
profilElement = node->ToElement();
assert( profilElement );
node = profilElement->FirstChildElement();
assert( node );
ageElement = node->ToElement();
assert( ageElement );
//insertion de la valeur de age_player dans la variable value
ageElement->SetAttribute( "value", age_player );
system("pause");
} |
Mon problème est le suivant, je ne connait pas et ne parviens pas à trouver et utiliser une fonction de tinyxml pour transférer (dans mon exemple) l'age du jouer vers une variable après l'avoir récupérer dans un fichier xml (en l'occurrence le fichier profil.xml)
Fichier "profil.xml"
Code:
1 2 3 4 5 6 7 8 9 10
| <?xml version="1.0" encoding="ISO-8859-1" ?>
<profil_def>
<age value="5" />
<value2>
<variable name="8" />
<froyok>
<settings set1="180" set2="FROYOK" />
</froyok>
</value2>
</profil_def> |
Donc ma question est la suivante, comment récupérer la valeur de set1 soit ici 180 ? Puis la stocker dans une variable de type long ?
Notez tout de même que je parviens à écrire dans mon fichier... Mais pas à le lire de façon précise :cry:.
J'ai bien tenté un gettext avec tiny, et un texte entre deux balise, sans succès.
Merci de votre aide ! ;)