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

Windows Forms Discussion :

[C#] Problème chargement fichier xml dans treeview


Sujet :

Windows Forms

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    801
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 801
    Points : 314
    Points
    314
    Par défaut [C#] Problème chargement fichier xml dans treeview
    Bonjour,

    Voilà mon problème est dans cette fonction:
    Au niveau du try, je récupère l'erreur:
    La référence d'objet n'est pas définie à une instance d'objet ...
    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
     
     
            private void LoadSpecificRunFromXML()
            {
                //Chargement du fichier xml_specific_run_file dans l'objet XmlDocument XmlDoc
                XmlDocument xmlDoc = new XmlDocument();
                this.str = File.OpenText(xml_specific_run_file);
                xmlDoc.Load(str);
                for (int i = 0; i < TV.Nodes.Count; i++)
                {
                    MessageBox.Show("/Week/" + TV.Nodes[i].Text + "/RUN");
                    XmlNodeList tmp_ndl = xmlDoc.SelectNodes("/Week/" + TV.Nodes[i].Text + "/RUN");
                    MessageBox.Show(tmp_ndl.Count.ToString());
                    TreeNode[] child_collection = new TreeNode[tmp_ndl.Count];
                    for(int j= 0;j< tmp_ndl.Count;j++)
                    {
                        try
                        {
                            child_collection[j].Text = tmp_ndl[j].InnerText;
                            child_collection[j].ImageIndex = 1;
                            child_collection[j].SelectedImageIndex = 1;
                        }
                        catch (Exception err) { new Error("error",err.Message);}
                    }
                    TV.Nodes.Find(TV.Nodes[i].Text, false)[0].Nodes.AddRange(child_collection);
                }
     
    }
    Pourtant, je récupère bien mes données xml ...
    D'où peut venir cette erreur ??
    tout le monde est d'accord pour critiquer la pensée unique

  2. #2
    Membre éprouvé Avatar de guitoux1
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 011
    Points : 1 256
    Points
    1 256
    Par défaut
    c'est soit child_collection[j] soit tmp_ndl[j] qu'il trouve pas (moi au nez je dirais que c'est le second : tmp_ndl[j]

    En mode debug tu devrait pouvoir résoudre ce pb

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    801
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 801
    Points : 314
    Points
    314
    Par défaut
    Ne trouvant pas, je suis passé par:
    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
     
     
            private void LoadSpecificRunFromXML()
            {
                //Chargement du fichier xml_specific_run_file dans l'objet XmlDocument XmlDoc
                try
                {
                    this.str = File.OpenText(xml_specific_run_file);
                }
                catch (Exception err) { new Error("Error while loading specific run from xml file: "+ xml_specific_run_file,err.Message);}
                xmlDoc.Load(str);
                str.Close();
                for (int i = 0; i < TV.Nodes.Count; i++)
                {
                    XmlNodeList tmp_ndl = this.xmlDoc.SelectNodes("/Week/" + TV.Nodes[i].Text + "/RUN");
                    for(int j= 0;j< tmp_ndl.Count;j++)
                    {
                        try
                        {
                            TreeNode child_node = new TreeNode();
                            child_node.Text = tmp_ndl[j].InnerText;
                            child_node.ImageIndex = 1;
                            child_node.SelectedImageIndex = 1;
                            TV.Nodes.Find(TV.Nodes[i].Text, false)[0].Nodes.Add(child_node);
                        }
                        catch (Exception err) { new Error("Error while loading specific run from xml file: "+ xml_specific_run_file,err.Message);}
                    }
     
                }
            }
    Cela revient au même non ?
    tout le monde est d'accord pour critiquer la pensée unique

  4. #4
    Membre éprouvé Avatar de guitoux1
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 011
    Points : 1 256
    Points
    1 256
    Par défaut
    OK Trouvé ton pb
    Dans ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    TreeNode[] child_collection = new TreeNode[tmp_ndl.Count];
                    for(int j= 0;j< tmp_ndl.Count;j++)
                    {
                        try
                        {
                            child_collection[j].Text = tmp_ndl[j].InnerText;
                            child_collection[j].ImageIndex = 1;
                            child_collection[j].SelectedImageIndex = 1;
                        }
                        catch (Exception err) { new Error("error",er
    Tu initialise un tableau de TreeNode à xx éléments (TreeNode[] child_collection = new TreeNode[tmp_ndl.Count]; mais jamais tu ne créé les instances qui vont avec. En Fait, tu aurait du faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    TreeNode[] child_collection = new TreeNode[tmp_ndl.Count];
                    for(int j= 0;j< tmp_ndl.Count;j++)
                    {
                        try
                        {
                            child_collection[j] = new TreeNode();
                            child_collection[j].Text = tmp_ndl[j].InnerText;
                            child_collection[j].ImageIndex = 1;
                            child_collection[j].SelectedImageIndex = 1;
                        }
                        catch (Exception err) { new Error("error",er

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    801
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 801
    Points : 314
    Points
    314
    Par défaut
    Ok, c'était donc ça !!

    Merci pour l'info, je vais changer mon code !!
    tout le monde est d'accord pour critiquer la pensée unique

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

Discussions similaires

  1. Problème chargement fichier XML vers un DataSet
    Par verbal34 dans le forum Général Dotnet
    Réponses: 4
    Dernier message: 11/07/2010, 23h26
  2. Réponses: 4
    Dernier message: 23/02/2009, 11h45
  3. PROBLEME de chargement fichier XML dans une clé USB
    Par alas70 dans le forum ActionScript 1 & ActionScript 2
    Réponses: 0
    Dernier message: 27/05/2008, 18h12
  4. Affichre un fichier xml dans un treeview
    Par bath dans le forum Visual C++
    Réponses: 3
    Dernier message: 18/03/2007, 23h30
  5. Réponses: 2
    Dernier message: 05/03/2007, 14h21

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