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) :
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)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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"); }
Fichier "profil.xml"
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 ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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>
Notez tout de même que je parviens à écrire dans mon fichier... Mais pas à le lire de façon précise.
J'ai bien tenté un gettext avec tiny, et un texte entre deux balise, sans succès.
Merci de votre aide !![]()
Partager