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

C# Discussion :

Problème de lecture XML


Sujet :

C#

  1. #1
    Futur Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 18
    Points : 8
    Points
    8
    Par défaut Problème de lecture XML
    Bonjour à tous ,
    je suis confronté à un problème tout simple mais qui me bloque tout de même.
    Je cherche à récupérer des valeurs dans mon fichiers XML mais au bout d'un moment je n'y arrive plus.

    Voici les codes :

    XML
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?xml version="1.0" encoding="Windows-1252"?>
    <data> 
      <world> 
        <worldX>260</worldX> 
        <worldY>430</worldY> 
      </world> 
      <player> 
        <worldX>590</worldX> 
        <worldY>335</worldY>
        <stats life = "12" />
      </player>
    </data>
    c#
    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
    XmlDocument doc = new XmlDocument(); 
    doc.Load(@"data.xml");
     
    foreach (XmlNode e in doc.DocumentElement.ChildNodes) 
    {
        if (e.Name == "world")
        {
            Console.WriteLine("     " + e.Name);
            foreach (XmlNode i in e.ChildNodes)
            {
                Console.WriteLine("      " + i.Name + " : " + i.InnerText);
             }
        }
     
        if (e.Name == "player")
        {
            Console.WriteLine("     " + e.Name);
            foreach (XmlNode i in e.ChildNodes)
            {
                Console.WriteLine("      " + i.Name + " : " + i.InnerText);
            }
        }
    }
    Pour l'instant ce code fonctionne mais je bloque sur 2 points :
    - je n'arrive pas à coder : Si dans le noeud world il y a worldX ALORS ...
    si j'écris if (i.Name == "worldX") cela ne fonctionne pas.

    - je n'arrive pas non plus à récupérer les stats de player, toujours dans le même style : si il trouve "life" ALORS ... j'ai beau utiliser e.Attributes ["life"], ca ne marche pas.

    Je met ces conditions SI car à la fin je voudrais mettre ces valeurs dans mes variables.
    Merci de voter aide !

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2005
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2005
    Messages : 482
    Points : 625
    Points
    625
    Par défaut
    Salut,
    je ne vois pas où se trouve l'erreur :/

    alors juste pour info au cas ou :
    - les noms sont sensibles à la casse (majuscule / minuscules)
    - pour la valeur d'un attribut c'est "e.Attributes["life"].Value"

    plutot que faire ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    foreach (XmlNode e in doc.DocumentElement.ChildNodes) 
    {
    }
    essaye plutot :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    foreach (XmlNode e in doc.DocumentElement.SelectNodes("world"))
    {
    XmlNode MaNodeWorldX = e.SelectSingleNode("worldX");
    XmlNode MaNodeWorldY = e.SelectSingleNode("worldY");
    }
    foreach (XmlNode e in doc.DocumentElement.SelectNodes("player"))
    {
    XmlNode MaNodeWorldX = e.SelectSingleNode("worldX");
    XmlNode MaNodeWorldY = e.SelectSingleNode("worldY");
    XmlNode MaNodeStats = e.SelectSingleNode("stats");
    string MesStats = MaNodeStats.Attributes["life"].value;
    etc...
    }
    j'espère que ca te donnera une piste

  3. #3
    Futur Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 18
    Points : 8
    Points
    8
    Par défaut
    Effectivement, je ne l'avais pas envisagé de cette façon, ca marche !!

    Merci beaucoup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de lecture XML en vbscript
    Par gauthier.67 dans le forum XML/XSL et SOAP
    Réponses: 6
    Dernier message: 12/02/2013, 09h19
  2. Problème de lecture XML
    Par bip98 dans le forum Composants VCL
    Réponses: 1
    Dernier message: 13/05/2008, 12h09
  3. [SAX] Problème de lecture xml à la volée
    Par zuzuu dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 10/01/2007, 09h28
  4. [DOM4J] Problème de lecture de fichier xml avec dom4j
    Par santana2006 dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 05/04/2006, 16h52
  5. Problème de lecture dans un fichier xml
    Par Pyra dans le forum Langage
    Réponses: 2
    Dernier message: 18/12/2005, 00h13

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