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 séquentielle de noeuds dans fichier de conf


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Janvier 2014
    Messages : 63
    Par défaut Lecture séquentielle de noeuds dans fichier de conf
    Bonjour a tous,

    Je suis actuellement coincé sur un problème dans le développement de mon application, plus précisément en rapport avec le XML du fichier de conf.

    Je souhaite récupérer les valeurs de mes nœuds qui sont stocké dans ce fichier, qui est constitué de cette façon:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <configuration>
      <section name="Fournisseur" type="MonNameSpace.FournisseurSectionHandler, MonNameSpace"/>
      <Fournisseur>
        <Berner>
        </Berner>
        <Wurth>
          <numColCodeAD>1</numColCodeAD>
          <numColNomADWu>2</numColNomADWu>
          <numColMontHTWu>3</numColMontHTWu>
          <numColNumFactWu>4</numColNumFactWu>
          <nbColonneCalculéW>4</nbColonneCalculéW>
        </Wurth>
      </Fournisseur>
    </configuration>
    Ce que j'aimerai réussir a faire, c'est parcourir le nœud "Fournisseur" pour récupérer les valeurs des nœuds enfant (dans l'exemple Wurth et Berner).
    J'ai beau chercher sur le net et testé des solution rien ne marche, je suis donc dans l'impasse.

    J'attends vos conseil, à plus tard

  2. #2
    Membre Expert
    Avatar de PixelJuice
    Homme Profil pro
    Ingénieur .NET & Game Designer
    Inscrit en
    Janvier 2014
    Messages
    661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur .NET & Game Designer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 661
    Par défaut
    Bonjour,

    En utilisant XDocument et des requêtes Linq , on peut facilement récupérer des données en XML.Il y a aussi XPath mais que je connais moins. Essaye de voir de ce coté la .

    Regarde aussi le code de cette source , je manipule des données XML dans des nœuds , en espérant que ça puisse t'aider : Exemple Google Maps

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Janvier 2014
    Messages : 63
    Par défaut
    Bonjour PixelJuice,

    J'ai bien regardé le code de ta source, mais je n'y est pas trouvé beaucoup de chose pour m'avancer.
    Par contre j'ai trouvé mon bonheur dans la doc de XDocument, ce qui m'a permis de créer ceci mais ca ne fonctionne pas.

    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
    class FeedXML 
        {
            public void chargementXML()
            {
                XmlDocument unxml = new XmlDocument();
                try
                {
                    unxml.Load("appFourn.config");
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Erreur");
     
                }
     
                XmlNodeList myChildNode = unxml.GetElementsByTagName("node");
                foreach (XmlNode unNode in myChildNode)
                {
                    MessageBox.Show(unNode.Attributes[0].InnerText);
                }
            }
        }
    Lors de la compilation, le fichier XML ne se charge pas et je tombe dans l'exception "erreur".

  4. #4
    Membre émérite
    Homme Profil pro
    Architecte technique
    Inscrit en
    Septembre 2005
    Messages
    462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 462
    Par défaut
    Sans nous dire ton exception ce n'est pas évident...

    Mais la première chose qui me vient à l'esprit : Est-ce-que ton fichier "appFourn.config" est dans ton répertoire "\bin\Debug".
    Sinon il faut lui préciser le chemin complet du fichier.

    XmlDocument.Load

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Janvier 2014
    Messages : 63
    Par défaut
    Sans nous dire ton exception ce n'est pas évident...
    Celle qui est géré dans mon code, c'est a dire que le fichier n'est pas lu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     catch (Exception ex)
                {
                    MessageBox.Show("Erreur");
     
                }
    En effet, avec le chemin complet la lecture du fichier XML fonctionne, mais j'aime pas vraiment savoir que le chemin est en dur dans mon code...
    Lorsque que mon appli sera compilé, le chemin ne sera plus le même non?

  6. #6
    Membre émérite
    Homme Profil pro
    Architecte technique
    Inscrit en
    Septembre 2005
    Messages
    462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 462
    Par défaut
    C'est sûr qu'il faut éviter de mettre le chemin en dur.
    Quelques solutions :
    • Une constante (il faudra recompiler pour modifier la valeur)
    • Un paramètre de config (Juste besoin de modifier le fichier de conf)
    • Un paramètre de ton application (L'utilisateur ou ton programme recherche le chemin du fichier)

    Il y a surement d'autre solutions...

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 31/08/2010, 11h19
  2. Réponses: 0
    Dernier message: 12/04/2010, 12h08
  3. Lecture d'un noeud sur fichier xml
    Par soiz775 dans le forum C#
    Réponses: 1
    Dernier message: 01/06/2009, 08h19
  4. Ajout/Supression de blocs dans fichier de conf
    Par debotux dans le forum Langage
    Réponses: 2
    Dernier message: 09/12/2008, 19h08
  5. Lecture nom et contenu dans fichier
    Par Tempotpo dans le forum Langage
    Réponses: 2
    Dernier message: 19/05/2006, 14h11

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