IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XML Discussion :

[TinyXML2] Récuperer les attributs d'un noeud particulier


Sujet :

XML

  1. #1
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2017
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Distribution

    Informations forums :
    Inscription : Mars 2017
    Messages : 1
    Points : 2
    Points
    2
    Par défaut [TinyXML2] Récuperer les attributs d'un noeud particulier
    Bonjour à tous
    voici mon code source
    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
     #include "tinyxml.h"
    #include <iostream>
    #include <string>
    TiXmlDocument doc("config.xml");
    TiXmlHandle document(&doc);
    if(!doc.LoadFile()){
        cerr << "erreur lors du chargement" << endl;
        cerr << "error #" << doc.ErrorId() << " : " << doc.ErrorDesc() << endl;
        return 1;
    }
    using namespace std;
    int i=0; 
    		while ( true )
    		{
    			TiXmlElement* resetNetwork = document.FirstChild( "hardware" ).FirstChild( "resetModels" ).FirstChild( "resetModel" ).Child( "resetNetwork", i ).ToElement();
    			if ( !resetNetwork)
    			break;
    			cout<<resetNetwork->Attribute("pinP");
    			++i;
    		}
    voici le fichier config.xml
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?xml version="1.0"?>
      <hardware xmlns:xi="http://www.w3.org/2001/XInclude">
    <resetModels>                   
          <resetModel name="resetModel1"> 
            <resetNetwork name="RST1" type="ActiveLow" lvds="true" />
            <resetNetwork name="RST2" type="ActiveLow" lvds="true" pinP="BM41" pinN="BM42" />
            <resetNetwork name="RST3" type="ActiveLow" lvds="true" pinP="BE52" pinN="BF52" />
            <resetNetwork name="RST4" type="ActiveLow" lvds="true" pinP="BK51" pinN="BK52" />
          </resetModel>
     </resetModels>
    </hardware>
    le programme n'affiche rien (car la première node resetNetwork ne possède pas l'attribut pinP ) Comment je fais pour récupérer l'attribut pinP des autres node resetNetwork ?
    lorsque je modifie le fichier config.xml voici le fichier
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?xml version="1.0"?>
      <hardware xmlns:xi="http://www.w3.org/2001/XInclude">
    <resetModels>                   
          <resetModel name="resetModel1"> 
            <resetNetwork name="RST1" type="ActiveLow" lvds="true" pinP="BM40" />
            <resetNetwork name="RST2" type="ActiveLow" lvds="true" pinP="BM41" pinN="BM42" />
            <resetNetwork name="RST3" type="ActiveLow" lvds="true" pinP="BE52" pinN="BF52" />
            <resetNetwork name="RST4" type="ActiveLow" lvds="true" pinP="BK51" pinN="BK52" />
          </resetModel>
     </resetModels>
    </hardware>
    Dans ce cas le programme marche bien:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    BM40
    BM41
    BE52
    BK51
    Merci d'avance

  2. #2
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    Une façon de le faire ? comma ça.
    Code cpp : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    //cout<<resetNetwork->Attribute("pinP");
    cout<<"["+to_string(i)+"] ";
    const char* v=resetNetwork->Attribute("pinP");
    if(v != NULL) {
        cout<<v<<endl;
    } else {
        cout<<"@pinP not exist"<<endl;
    }

Discussions similaires

  1. Réponses: 2
    Dernier message: 30/05/2007, 05h32
  2. lister les attributs d'un noeud XML
    Par wapok dans le forum Delphi
    Réponses: 3
    Dernier message: 30/12/2006, 03h16
  3. Réponses: 3
    Dernier message: 01/04/2005, 10h37
  4. [VB.NET][XML] Récupere l'attribut du dernier noeud ds un XML
    Par Hoegaarden dans le forum Windows Forms
    Réponses: 2
    Dernier message: 30/09/2004, 15h14
  5. Retrouver les attributs d'un noeud...
    Par LLaurent dans le forum XMLRAD
    Réponses: 2
    Dernier message: 18/12/2003, 10h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo