begin process at 2012 05 30 14:00:13
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Base de données

 > 

XML

 > 

TinyXML Récupération de valeurs


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

TinyXML Récupération de valeurs

lundi 31 juillet 2006 à 14:41:57 | TinyXML Récupération de valeurs

stan08

Bonjour,

Je viens de récupérer la bibliothèque Tinyxml pour parser du xml en c/c++. J'ai lu un tuto pour l'utiliser mais j'ai un problème pour récupérer des valeurs dans mon fichier xml.

Voici mon fichier xml:
Code :
<liens>
<lien id="a1">up</lien>
<lien id="a2">down</lien>
</liens>

Je voufrais récupérer 'up' et 'down'

J'ai essayé ceci:

Code :
TiXmlDocument doc("lien.xml");
cout<< doc.FirstChildElement()->FirstChild();
mais ça m'affiche une adresse: 0x8057330

J'ai aussi essayé :
Code :
TiXmlDocument doc("lien.xml");
cout<< doc.FirstChildElement()->FirstChildElement()->FirstChild();

idem.

Quelqu'un peut t'il m'aider?
lundi 31 juillet 2006 à 14:54:19 | Re : TinyXML Récupération de valeurs

turnerom

Salut, essaye
cout<< *doc.FirstChildElement()->FirstChild();

TuRn3r
lundi 31 juillet 2006 à 15:03:52 | Re : TinyXML Récupération de valeurs

turnerom

 TiXmlDocument doc( "lien.xml" );
  doc.LoadFile(); // Charge ton fichier
 
  TiXmlHandle docHandle( &doc );
  TiXmlNode *root,  *child;
 
  root = docHandle.FirstChild("liens").Node(); // Noeud principal (la balise <liens>)
  child =  docHandle.Node();
 
 
  if ( root && (root->ValueStr() != "liens")) // Si le n
oeud principal !=la balise <liens>
    {
      mess << "Fichier lien.xml non valide";
      throw (mess.str());
    }
 
string val = root->FirstChild()->ValueStr(); //REcuperation du 1er fils (ici up)

child = root->IterateChildren( child ) // Passe a la balise suivante

string val2 = root->FirstChild()->ValueStr();
//REcuperation du 2eme fils (ici down)


Dans val1 tu auras : up
Dans val2, tu auras down

Voila, je pense que c'est un bon depart, mais je te conseil de faire un truc plus générique, en parcourant tout les noeuds jusqu'à la fin et de stocker les resultats dans une std::map, comme ca apres pour les retrouver c'est vraiment plus facile.

@+

TuRn3r
lundi 31 juillet 2006 à 15:05:28 | Re : TinyXML Récupération de valeurs

turnerom

Enfin, voila, j'ai été un peu vite, cette version devrai mieu marcher :


TiXmlDocument doc( "lien.xml" );
  doc.LoadFile(); // Charge ton fichier
 
  TiXmlHandle docHandle( &doc );
  TiXmlNode *root,  *child;
 
  root = docHandle.FirstChild("liens").Node(); // Noeud principal (la balise <liens>)
  child =  docHandle.Node();
 
 
  if ( root && (root->ValueStr() != "liens")) // Si le n
oeud principal !=la balise <liens>
    {
      mess << "Fichier lien.xml non valide";
      throw (mess.str());
    }
 
string val = root->FirstChild()->ValueStr(); //REcuperation du 1er fils (ici up)

child = root->IterateChildren( child ) // Passe a la balise suivante

string val2 = child->FirstChild()->ValueStr();
//REcuperation du 2eme fils (ici down)


Dans val1 tu auras : up
Dans val2, tu auras down

Voila, je pense que c'est un bon depart, mais je te conseil de faire un truc plus générique, en parcourant tout les noeuds jusqu'à la fin et de stocker les resultats dans une std::map, comme ca apres pour les retrouver c'est vraiment plus facile.

@+

TuRn3r
lundi 31 juillet 2006 à 15:48:43 | Re : TinyXML Récupération de valeurs

stan08

Merci de m'aider sur ce coup la mais ça ne marche pas.
J'ai ça comme erreur de compil:

request for member «ValueStr» in «child», which is of non-class type «TiXmlNode*»
lundi 31 juillet 2006 à 16:02:15 | Re : TinyXML Récupération de valeurs

turnerom

Essayde remplacer les
root->FirstChild()->ValueStr();
par
root->FirstChild().ValueStr();

TuRn3r
lundi 31 juillet 2006 à 16:09:36 | Re : TinyXML Récupération de valeurs

stan08

ça ne marche pas non plus

erreur: request for member «ValueStr» in «root. TiXmlNode::FirstChild()», which is of non-class type «TiXmlNode*»
jeudi 6 mai 2010 à 13:47:37 | Re : TinyXML Récupération de valeurs

ouknassima

Bonjour,
moi aussi je voudrai travailler avec la librairie tinyxml, mais je la trouve pas , s'il vous plait , vous pourrais me donner le liens où vous avez récupérer la librairie
j'en ai besoin vraiment
jeudi 6 mai 2010 à 17:25:07 | Re : TinyXML Récupération de valeurs

turnerom

Après des tests, j'ai laissé tombé tinyXML, rapidxml étant entre autre bien plus performante (jusqu'a 100x plus rapide) : [ Lien ]



TuRn3r


Cette discussion est classée dans : récupérer, code, valeurs, xml, tinyxml


Répondre à ce message

Sujets en rapport avec ce message

récupérer code assembleur [ par none77 ] Bonjour,j'aimerai savoir si lorsque je programme en C il m'est possible de récupérer le code assembleur automatiquement.Je demande ca car je dois util récupérer un identifiant D'un treeview [ par psycomel ] Bonjour, Dans mon treeview j'arrive a récupérer le texte qui vient d'être selectionné. voici la commande : TxtSelection=m_arbre.GetItemText(m_arbre.Ge XML [ par JCpp ] Bonjour,Je cherche une source pour lire le XML, j'ai cherché dans le site «msdn» et j'ai rien trouvé. Pourtant, je pence qu'un jour j'avais trouvé un Récupérer des valeurs chaines dans le registre... [ par Dav6215 ] Bonjour à tous :pAlors en faite, j'ai un tit problèmeJ'en ai souvent qd mm Je voudrais en faite récupérer toute les chaines de caratèresprésent dans u outils formulaires [ par alicvb ] BonjourVoilà, je recherche un outils qui permette de créer graphiquement des formulaires (cô sous VS) mais j'aimerai beaucoup pouvoir récupérer le cod Corrigez mon code? Comment récupérer la taille d'un fichier? [ par supergrey ] Bonjour j'utilise pour l'instant la fonction suivante pour récupérer la taille d'un fichier: DWORD TailleFichier(char* str_NomFichier){     HANDLE hFi Récupérer l'heure [ par cpetter ] Bonsoir tout le monde Je sais qu'il y a déjà eu plein de post sur l'heure en C, mais g un gros blème Le but de ce code est de récupérer l'heure et de TinyXML Modification de valeurs [ par stan08 ] Bonjour, Je suis en train de découvrir la librairie TinyXML, j'ai réussi à me positionner dans mon fichier xml, [GTK]Comment récupérer les valeurs de plusieurs champs dans un questionnaire [ par electron159 ] Bonjour à tous Je programme actuellement une petite application en GTK. En résumé: On rempli un petit questionnaire et on appuie sur le bo probleme avec la libraire tinyXML pour filtrer les donée XML [ par qbasic ] Bonjoue j'utilise la librairie c++ windows tinyXML pour filtrer les XML le probleme est que cette libraire permet effectivement des fichier XML mais


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,608 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales