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 :

Lecture d'un noeud XML [Débutant]


Sujet :

C#

  1. #1
    Membre confirmé
    Homme Profil pro
    Collégien
    Inscrit en
    Septembre 2011
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Septembre 2011
    Messages : 113
    Par défaut Lecture d'un noeud XML
    Bonjour.

    Depuis 2jours, je cherche comment lire le contenue d'un noeud en XML, l'horreur !
    Je ne comprend vraiment rien, suis-je bête ?
    Voici donc mon fichier XML :

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?xml version="1.0" encoding="utf-8" ?>
    <download>http://dl.google.com/download.exe</download>
    <lien>http://google.com/</lien>
    <nom>Hugo</nom>

    Je souhaiterai que mon label ait pour texte, le contenue du/de la noeud/balise "nom".

    Si quelqu'un pourrait m'aider, ce serais une grande aide et un grand soulagement pour moi.

    Cordialement, T4unt.

  2. #2
    Membre très actif Avatar de Pynouz
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 274
    Par défaut
    Bonjour,

    J'ai trouver ce lien sur Internet je ne sais pas ce que ça vaut mais à première vu ça à l'air de coller à ton problème.

  3. #3
    Membre confirmé
    Homme Profil pro
    Collégien
    Inscrit en
    Septembre 2011
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Septembre 2011
    Messages : 113
    Par défaut
    Merci pour ceci, mais ce que je ne comprend pas, c'est "comment utiliser le uniquement le contenue d'un noeud ?"
    Dans mon cas, label1.text = noeud("download")

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Ton fichier n'est pas un document XML valide ; en XML il ne doit y avoir qu'un seul élément racine.

  5. #5
    Membre confirmé
    Homme Profil pro
    Collégien
    Inscrit en
    Septembre 2011
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Septembre 2011
    Messages : 113
    Par défaut
    Voici mon "nouveau fichier xml"
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <download> http://dl.google.com/download.exe </download>
      <lien> http://google.com </lien>
      <name> T4unt </name>
    </configuration>

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Il y a différentes façons de faire...

    - sérialisation XML : tu déclares une classe avec des propriétés qui correspondent aux éléments de ton XML, et tu désérialises avec XmlSerializer (cf. le tuto en lien pour les détails). Le principal avantage est que tu n'as pas vraiment à te préoccuper du XML une fois que la classe est créée, tu travailles directement en objet.

    - XmlDocument : tu charges le document XML dans une instance de XmlDocument, et tu récupères le noeud voulu avec XPath :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        using System.Xml;
        ...
     
        var doc = new XmlDocument();
        doc.Load(fileName);
        var node = doc.SelectSingleNode("/configuration/name");
        string name = node.InnerText;
    - XmlReader, mais bon, c'est tellement peu pratique que je ne vais pas le détailler...

    - Linq to XML : le plus facile à mon avis pour ce genre de cas très simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        using System.Xml.Linq;
        ...
     
        var doc = XDocument.Load(fileName);
        string name = doc.Root.Element("name").Value;

  7. #7
    Membre confirmé
    Homme Profil pro
    Collégien
    Inscrit en
    Septembre 2011
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Septembre 2011
    Messages : 113
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    private void Form1_Load(object sender, EventArgs e)
            {
                var doc = XDocument.Load("config.xml");
                string name = doc.Root.Element("lien").Value;
                label1.Text = name;
            }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     var doc = new XmlDocument();
                doc.Load(config.xml);
                var node = doc.SelectSingleNode("/configuration/name");
                string name = node.InnerText;
     
                label1.Text = name;
    Ne marche toujours pas...
    le label a toujours pour texte "label1".
    Merci néanmoins de votre aide.

  8. #8
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par T4unt Voir le message
    Ne marche toujours pas...
    C'est à dire ? Le résultat est incorrect ? Tu obtiens une erreur ? Laquelle ?

    Je sais que ça fonctionne, je l'ai testé avant de poster... tu as peut-être oublié quelque chose.

  9. #9
    Membre confirmé
    Homme Profil pro
    Collégien
    Inscrit en
    Septembre 2011
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Septembre 2011
    Messages : 113
    Par défaut
    Eh bien, label1 a toujours le même texte.
    Un beug de l'IDE ? Cela m'étonnerai, mal recopier ? j'ai ctrl+c...
    J'ai bien déclaré mes using.
    Hormis copier coller et remplir les champs nécessaires, je n'ai rien fait d'autre.

  10. #10
    Membre émérite Avatar de kheironn
    Homme Profil pro
    Chef de projets technique C# / MVC / .Net
    Inscrit en
    Février 2007
    Messages
    823
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets technique C# / MVC / .Net
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2007
    Messages : 823
    Par défaut
    Ce n'est pas normal. Tomlev t'a donné du code très classique. Tu devrais faire du pas à pas pour comprendre ce qu'il se passe.

  11. #11
    Membre confirmé
    Homme Profil pro
    Collégien
    Inscrit en
    Septembre 2011
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Septembre 2011
    Messages : 113
    Par défaut
    Re !
    Alors, après avoir passer une bonne nuit de sommeil, sa marche, merci, je ne sais pas d'où sa venait mais ton aide m'a fort aider !
    Cordialement.

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

Discussions similaires

  1. [Débutant] Lecture de noeud XML en c#
    Par FruitSellers dans le forum C#
    Réponses: 1
    Dernier message: 06/06/2014, 12h20
  2. Lecture d'un noeud sur fichier xml
    Par soiz775 dans le forum C#
    Réponses: 1
    Dernier message: 01/06/2009, 08h19
  3. lecture d'un noeud XML contenant des nombres
    Par le026 dans le forum Débuter
    Réponses: 1
    Dernier message: 08/05/2009, 14h11
  4. Sélection de noeuds sur lecture d'un fichier XML
    Par oclone dans le forum ASP.NET
    Réponses: 5
    Dernier message: 04/11/2008, 16h29
  5. XSL ne parvient pas à lire les noeuds XML ??
    Par yahn dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 27/06/2004, 19h29

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