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

Visual C++ Discussion :

récuperer des données d'un fichier XML


Sujet :

Visual C++

  1. #1
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 326
    Points : 62
    Points
    62
    Par défaut récuperer des données d'un fichier XML
    Bonjour,
    je travaille sous visual studio 2005 avec visual c++
    j'ai un fichier xml , et je veux récuperer ce qu'il y a dedans

    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
     
    <users>
    	<level id=1>
    		<user login ="test11" password ="test101">
    		<user login ="test12" password ="test102">
    		<user login ="test13" password ="test103">
    		<user>
    	</level>
    	<level id=2>
    		<user login ="test21" password ="test201">
    		<user login ="test22" password ="test202">
    		<user login ="test23" password ="test203">
    		<user>
    	</level>
    </users>
    est ce que quelqu'un a une idée comment je pourrais récuperer les login et les password ? quelles méthodes utiliser ?

    merci d'avance

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    en général on utilise un parseur XML
    comme xmllite par exemple.
    sinon pour une utilisation simple voir aussi cet exemple que j'ai écrit

  3. #3
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 326
    Points : 62
    Points
    62
    Par défaut
    sinon ce XmlReader je peux pas récuperer avec les données ?

  4. #4
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    Citation Envoyé par ryoussef19
    sinon ce XmlReader je peux pas récupérer avec les données ?
    heu tu peux essayer de faire des phrases intelligibles ?
    oui ,comme l'indique la doc MSDN en français c'est un parseur pour la lecture de données...

  5. #5
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    xmlreader est simple d'utilisation avec le framework .net, tu trouveras tout ce qu'il faut sur les forums ou sur msdn

  6. #6
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 326
    Points : 62
    Points
    62
    Par défaut
    En fait ce que je veux je crois c simple mais bon que je suis totalement débutant ..ma question pourrait paraitre bete

    voila imaginons que j'ai un fichier ou dedans il ya cette structure:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <users>
    	<level id=1>
    		<user login ="test11" password ="test101">
    		<user login ="test12" password ="test102">
    		<user login ="test13" password ="test103">
    		<user>
    	</level>
    	<level id=2>
    		<user login ="test21" password ="test201">
    		<user login ="test22" password ="test202">
    		<user login ="test23" password ="test203">
    		<user>
    	</level>
    </users>
    donc ce que je veux que lors de l'authentification je teste si l'utilisateur a rentré un login et un password qui correspond à un des existents dans la liste

    est ce que vous avez un exemple simple d'une telle utilisation

    merci d'avance

  7. #7
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 326
    Points : 62
    Points
    62
    Par défaut
    comment je peux créer un tel fichier 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
     
    <users>
    	<level id=1>
    		<user login ="test11" password ="test101">
    		<user login ="test12" password ="test102">
    		<user login ="test13" password ="test103">
    		<user>
    	</level>
    	<level id=2>
    		<user login ="test21" password ="test201">
    		<user login ="test22" password ="test202">
    		<user login ="test23" password ="test203">
    		<user>
    	</level>
    </users>
    et comment je peux modifier ces nodes ??

  8. #8
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    Utilise XmlDocument

    mais, ce xml n'est pas valide

  9. #9
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 326
    Points : 62
    Points
    62
    Par défaut
    ce xml n'est pas valide.. pourquoi?

  10. #10
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    fait le valider par un outil, tu verras bien
    les attributs doivent avoir leur valeur entre guillemets
    les balises doivent etre fermées
    etc ...

    si tu le charges avec XmlDocument, tu verras, ca va planter :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    XmlDocument ^doc = gcnew XmlDocument();
    doc->LoadXml(maChaine);

  11. #11
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 326
    Points : 62
    Points
    62
    Par défaut
    ok
    et celui là ca tient la route ou c'est aussi invalide?
    et pour recuperer les login password de chaque user j'utilise "XmlDocument"..mais quelles méthodes?
    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
    <levels>
    	<level id=1>
    		<users>
    			<user>
    				<login>"test11"<\login>
    				<password>"test101"<\password>
    			<\user>
    			<user>
    				<login>"test12"<\login>
    				<password>"test102"<\password>
    			<\user>
    			<user>
    				<login>"test13"<\login>
    				<password>"test103"<\password>
    			<\user>
    		<\users>
    	<\level id=1>
    	<level id=2>
    		<users>
    			<user>
    				<login>"test21"<\login>
    				<password>"test201"<\password>
    			<\user>
    			<user>
    				<login>"test22"<\login>
    				<password>"test202"<\password>
    			<\user>
    			<user>
    				<login>"test23"<\login>
    				<password>"test203"<\password>
    			<\user>
    		<\users>
    	<\level id=2>
    </levels>

  12. #12
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    salut,
    tu prends ton texte tu le mets dans notepad ,
    tu l'enregistres au format .xml
    et tu le lis dans firefox par exemple, en indiquant le chemin d'accès au fichier.
    et tu as ta réponse...

  13. #13
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 326
    Points : 62
    Points
    62
    Par défaut
    c déjà fait et je l'ai corrigé :-)
    mais ce que je veux c'est recuperer un login et un pass et donner un level comme résultat
    comment je pourrais faire avec "XmlDocument"? quelles méthodes je peux utiliser ?
    merci
    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
    <levels>
    	<level id="1">
    		<users>
    			<user>
    				<login>test11</login>
    				<password>test101</password>
    			</user>
    			<user>
    				<login>test12</login>
    				<password>test102</password>
    			</user>
    			<user>
    				<login>test13</login>
    				<password>test103</password>
    			</user>
    		</users>
    	</level>
    	<level id="2">
    		<users>
    			<user>
    				<login>test21</login>
    				<password>test201</password>
    			</user>
    			<user>
    				<login>test22</login>
    				<password>test202</password>
    			</user>
    			<user>
    				<login>test23</login>
    				<password>test203</password>
    			</user>
    		</users>
    	</level>
    </levels>

  14. #14
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    je pense personnelement que c'est mieux de faire ca dans un fichier web.config, seulement, le code est dans la future version de la faq en préparation
    Donc, j'ai ca chez moi, si j'y pense ce soir, je te mettrais le code

  15. #15
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 326
    Points : 62
    Points
    62
    Par défaut
    ok merci bien
    mais par contre j'ai pas compris ce que tu veux dire par ca :
    je pense personnelement que c'est mieux de faire ca dans un fichier web.config
    est ce que tu peut détailler un peu plus pour que je puisse comprendre

  16. #16
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    c'est ce que je pourrais faire ce soir
    en attendant, une recherche sur app.config te donnera plein de résultat

  17. #17
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 326
    Points : 62
    Points
    62
    Par défaut
    allez c'est parti pour une recherche

  18. #18
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    allez, je te livre en exclu des extraits de la future version de la faq :

    Comment travailler avec les fichiers de configuration ?

    Les fichiers de configuration sont des fichiers XML qui contiennent la configuration de notre exécutable. Ils doivent se situer dans le même répertoire que l'exécutable.
    Visual C++ ne gère pas automatiquement les fichiers de configuration comme app.config. Tant est si bien que quand on essaie de les utiliser, à chaque chargement de valeur, on obtient une chaine vide.
    Ceci est expliqué par le fait que Visual C++ ne copie pas automatiquement le fichier app.config dans le répertoire de l'exécutable (debug par exemple).
    Il faut donc le faire manuellement ou bien se servir des événements après génération.
    Aller dans les propriétés du projet -> événement de génération -> événement après génération. Et modifier la ligne de commande par :
    copy app.config "$(TargetPath).config"

    Comment lire une valeur dans un fichier de configuration ?

    Tout d'abord, il faut créer le fichier de configuration app.config. Le plus simple ensuite est de travailler avec la section appSettings qui est gérée par le ConfigurationManager.
    Dans le fichier, ajouter des clés et des valeurs comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <configuration>
      <appSettings>
        <add key="nom" value="pyright"/>
        <add key="prenom" value="nico"/>
      </appSettings>
    </configuration>
    Ensuite, on peut y acceder ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    String ^nom = Configuration::ConfigurationManager::AppSettings["nom"];
    String ^prenom = Configuration::ConfigurationManager::AppSettings["prenom"];
    Console::WriteLine("Je m'appelle {0} {1}", prenom, nom);
    N'oubliez pas d'ajouter la référence à System.Configuration.

    vive le copier-coller

  19. #19
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 326
    Points : 62
    Points
    62
    Par défaut
    voici mon fichier 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
     
    <levels>
    	<level id="1">
    		<users>
    			<user>
    				<login>login11</login>
    				<password>password11</password>
    			</user>
    			<user>
    				<login>login12</login>
    				<password>tpassword12</password>
    			</user>
    			<user>
    				<login>login13</login>
    				<password>password13</password>
    			</user>
    		</users>
    	</level>
    	<level id="2">
    		<users>
    			<user>
    				<login>login21</login>
    				<password>password21</password>
    			</user>
    			<user>
    				<login>login22</login>
    				<password>password22</password>
    			</user>
    			<user>
    				<login>login23</login>
    				<password>password23</password>
    			</user>
    		</users>
    	</level>
    </levels>
    et je veux créer une form avec un champ pour le login et l'autre pour le password

    et après lorsque l'utilisateur rentre son login et son password tester lequel c'est et retourner un level id

    franchement je sais pas comment je peux utiliser ton code (de la future faq)??

    est ce que tu peux m'expliquer stp

    merci d'avance

  20. #20
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    si tu dois absolument utiliser un fichier xml de ce type, ce n'est peut-etre pas adapté.
    Réutilise le XmlDocument pour le charger

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 4 1234 DernièreDernière

Discussions similaires

  1. Récuperer des données dans un fichier XML/ Sitemap
    Par Maldus dans le forum ASP.NET
    Réponses: 6
    Dernier message: 07/07/2008, 17h25
  2. récuperer des données d'un fichier xml
    Par Ljungberg dans le forum XML
    Réponses: 4
    Dernier message: 13/06/2006, 09h54
  3. [XML] Integrer des données d'un fichier xml dans un autre ?
    Par vpet dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 16/03/2006, 18h41
  4. [XML] stocker des données dans un fichier XML
    Par R3iTt0R dans le forum XML/XSL et SOAP
    Réponses: 5
    Dernier message: 27/05/2005, 16h51
  5. Réponses: 3
    Dernier message: 13/12/2004, 13h54

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