Hello!
Je doit créer un fichier XML en récupérant les valeurs d'un treeview j'ai trouver un bout de code qui fontionne presque mais je n'arrive pas a le modifier pour qu'il fasse se que je veux

J'utilise se morceau de code

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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
private void LaunchWriting(string filename)
        {
            //defintion du writer qui va ecrire le document xml.
            XmlTextWriter w = new XmlTextWriter(filename, System.Text.Encoding.UTF8);
            //defintion de l'indentation
            w.Formatting = Formatting.Indented;
            w.Indentation +=2 ;
            //ecriture de la declaration xml
            w.WriteStartDocument();
            //parcours des treenodes du treeview newsML
            foreach (TreeNode tn in this.treeView1.Nodes)
            {
                this.writeNewsML(w, tn, filename);
            }
            //fermeture du writer
            w.Close();
        }
        private void writeNewsML(XmlWriter w, TreeNode tn, string filename)
        {
            //Presence de fils => Soit un noeud pere, soit un noeud d'attributs
            //et differenciation entre les noeuds peres <pere></pere>
            //et les noeuds de valeurs <pere>valeur</pere> materialisés par la chaine "Value:"
            //precedent la dite valeur.
            if (tn.Nodes != null && !tn.Text.StartsWith("Value:"))
            {
                //Ecriture du pere avant ses attributs
                //Si ce n'est pas un arbre d'attributs, c'est un arbre pere.
            if (tn.Text != "Attributes")
            {
                //Ecriture d'une balise ouvrante
                w.WriteStartElement(tn.Text);
                //ecriture de ses attributs. (en les faisant repasser
                //dans la moulinette, ils tomberont dans le "else" suivant)
                foreach (TreeNode n in tn.Nodes)
                {
                    this.writeNewsML(w,n,filename);
                }
                //Ecriture de la balise fermante
                w.WriteEndElement();
            }
            //Si ce n'est pas un pere, c'est un noeud d'attributs,
            //que l'on attribue au pere
            else
            {
                //Ecriture des attributs de l'arbre pere :
                //Pour chaque attribut
                foreach (TreeNode att in tn.Nodes)
                {
                    //Recuperation du nom de l'attribut par decoupage de la chaine selon le "=" //(il est avant le "=")
                    string attName = att.Text.Split(System.Convert.ToChar("="))[0];
                    //Recuperation dde la valuer de l'attribut selon le meme procédé.
                    string attValue = att.Text.Split(System.Convert.ToChar("="))[1];
                    //On vire les caracteres quotes (") presents de chaque coté
                    //de la valeur de l'attribut.
                    //Le fait de decouper une chaine selon un caractere vire celui-ci.
                    attValue = attValue.Split(System.Convert.ToChar("\""))[1];
                    //ecriture de l'attribut.
                    w.WriteAttributeString(attName, attValue );
                }
            }
        }
       //Il n'y a pas de fils => les attributs ayant été traités,
        //ils ne doivent pas passer.
        //Ne doivent passer que les valeurs relatives au precedent arbre
        else if (tn.Parent.Text != "Attributes" && tn.Text != "Attributes")
        {
            w.WriteString(tn.Text.Remove(0,6));
        }
Mon treeview ressemble a cela:

<family>
<parent>
jacques
</parent>
<parent>
Jean
</parent>
<parent>
<child>
toi
</child>
</parent>
</family>



Et quand je le récupère dans mon fichier XML sa donne sa :
<?xml version="1.0" encoding="utf-8"?>
<family>
<parent>
<jacques />
</parent>
<parent>
<Jean />
</parent>
<parent>
<child>
<toi />
</child>
</parent>
</family>


C'est presque correcte mon seul problème c'est qu'il met aussi les valeurs dans un balise!
Si qqun a une idée se que je dois modifier merci beaucoup d'avance