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 lecture fichier XML


Sujet :

C#

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2010
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2010
    Messages : 100
    Points : 67
    Points
    67
    Par défaut Problème lecture fichier XML
    Bonjour,

    j'ai un petit problème dans la lecture d'un fichier XML. Voici le fichier XML :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?xml version="1.0" encoding="utf-8" ?>
     
    <configuration>
      <client name="idClient" value="14"/>
      <serveur name="ipServeur" value ="169.254.221.190"/>
      <port name="portServeur" value="8001"/>
    </configuration>
    Et la classe qui lit le fichier XML et qui me retourne la valeur que je souhaite :

    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    public class ConfigManager
        {
            private XmlTextReader txtReader = null;
     
            public ConfigManager(String _fileName)
            {
                try
                {
                    FileStream fic = null;
     
                    String appPath = Path.GetFullPath(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase);
     
                    String fileName = appPath +_fileName;
     
                    fic = new FileStream(fileName, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite);
     
                    txtReader = new XmlTextReader(fic);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, "Exception", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
                }
            }
     
            public String getValue(String identification, String key)
            {
                try
                {
                    while (txtReader.Read())
                    {
                        XmlNodeType nType = txtReader.NodeType;
     
                        if (nType == XmlNodeType.Element)
                        {
                            if (txtReader.Name.Equals(identification) && txtReader.GetAttribute("name").Equals(key))
                            {
                                String strValue = txtReader.GetAttribute("value");
                                return strValue;
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Exception : " + ex.Message, "Exception", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
                }
                return null;
            }
        }
    Mon fichier XML se trouve dans un Folder que j'ai créé dans mon projet. Le folder s'appelle "XML". Dedans il y ma classe de lecture de fichier XML et le fichier XML. Lorsque j'appelle ma fonction de recherche ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ConfigManager config = new ConfigManager("XML\\ApplicationConfiguration.xml");
     
    String adresseServeur = config.getValue("serveur", "ipServeur");
                String portServeur = config.getValue("port", "portServeur");
    Il me lance une exception du type :

    Could not find a part of the path 'Program Files\GAP.install\GAP.exeXML\ApplicationConfiguration.xml'
    Pourriez-vous m'aider ?

    Merci d'avance,

    Julien

  2. #2
    Rédacteur

    Avatar de Jean-Michel Ormes
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    1 838
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 838
    Points : 4 574
    Points
    4 574
    Par défaut
    J'ai l'impression qu'il te manque un \

    'Program Files\GAP.install\GAP.exe\XML\ApplicationConfiguration.xml

  3. #3
    Expert éminent
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Points : 7 660
    Points
    7 660
    Par défaut
    C'est même certain.

    Le problème se situe dans la classe ConfigManager, sur cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String fileName = appPath +_fileName;
    Concaténer des chemins peut être dangereux si on ne fait pas attention (\ en trop ou en moins suivant les cas). Le mieux est d'utiliser la méthode System.IO.Path.Combine pour éviter ce genre de petits désagréments
    Pas de questions techniques par MP

  4. #4
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2010
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2010
    Messages : 100
    Points : 67
    Points
    67
    Par défaut
    Bonjour,

    merci pour vos réponses. Effectivement il manque un "\", mais j'ai toujours le même problème. C'est une application mobile en fait, alors je fais un fichier .cab d'installation pour le mettre sur mon mobile. Donc lorsque je lance mon programme, il ne trouve toujours pas le fichier. J'ai regardé ce que le .cab avait mis dans program files et il n'y a pas mon fichier XML. Faut-il que je le mette à la main ou est-ce possible de l'intégrer dans mon fichier .cab pour qu'il puisse être placé dans program files ?

    Merci d'avance,

    Julien.

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

Discussions similaires

  1. Problème de lecture fichier xml
    Par chalu133 dans le forum Langage
    Réponses: 0
    Dernier message: 19/09/2014, 10h23
  2. Problème lecture fichier XML
    Par Mercusyo dans le forum C++Builder
    Réponses: 1
    Dernier message: 17/04/2013, 11h19
  3. [SimpleXML] Problème lecture fichier XML en dynamique
    Par moulay73 dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 12/11/2010, 21h43
  4. [C#-XML] - Problème de lecture fichier XML
    Par Gloups dans le forum Windows Forms
    Réponses: 9
    Dernier message: 08/08/2006, 00h40
  5. [SAX] Problème lecture fichier xml
    Par BernardT dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 07/07/2005, 18h11

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