Selectionner TreeView node puis sauvegarder dans un fichier XML

NABZ27 Messages postés 18 Date d'inscription mercredi 1 octobre 2014 Statut Membre Dernière intervention 24 octobre 2014 - 24 oct. 2014 à 11:13
Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 - 24 oct. 2014 à 14:11
Bonjour,
J'essaie depuis quelques jours de réaliser ma première application qui permet de gérer les fichier XML ,
En effet, je souhaite selectionner des nodes d'un treeview ( avec attributes ) et les sauvegarder dans un nouveau fichier XML ( ou un fichier existant , mais je pense que c'est encore compliqué pour un débutant que je suis )

Mon fichier de base ressemble à ça

<?xml version="1.0" encoding="UTF-8"?>
<source rt="2012"   ez= "123">
<category active="0" attribut1="vrai" titre="aaaaaa">
    <category_value titre="acac">
      <object  background_colour="230" id="0" name="zzzzzz"  type="0">
        <child id="121" x="2" y="0" />
        <child id="131" x="3" y="0" />
      </object>
</category_value>
</<category>
</source>




Je le charge dans mon treeview , et puis à partir de ce dernier , je souhaite récupérer quelques objects ( avec childs ) ou directement des childs et les mettre dans un fichier XML.

J'ai commencer par travailler sur cette fonction , mais des erreurs que j'arrive pas bien à comprendre :



        public void SerializeTreeView(TreeView treeView, string fileName)
        {
            XmlWriterSettings settings = new XmlWriterSettings();
            settings.Indent = true;

            XmlWriter textWriter = XmlWriter.Create(@"C:\Users\buenb\Documents\projet\EEE.XML", settings);

            // Writing the xml declaration tag
            textWriter.WriteStartDocument();

            // Save the nodes, recursive method
            SaveNodes(treeView.Nodes, textWriter);

            // End the xml document
            textWriter.WriteEndDocument();
            textWriter.Close();
        }
        private void SaveNodes(TreeNodeCollection nodesCollection, XmlWriter textWriter)
        {
            for (int i = 0; i < nodesCollection.Count; i++)
            {
                TreeNode node = nodesCollection[i];

                if (node.Nodes.Count > 0)
                {
                    
                    textWriter.WriteStartElement(node.Text);
                }
                else
                {
                    textWriter.WriteAttributeString(node.Text, "Attribute value");
                }

                if (node.Nodes.Count > 0)
                    SaveNodes(node.Nodes, textWriter);

                if (node.Nodes.Count > 0)
                    textWriter.WriteEndElement();
            }
        }
      





Voilà , je pense que j'ai tout dit !
Si quelqu'un à un exp de code pour que je puisse commencer la dessus ou idée ! je serai reconnaissant !

Merci bcp

1 réponse

Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 656
24 oct. 2014 à 14:11
Bonjour si tu travailles sur une framework >= 3, alors je te conseille d'utiliser LinqToXml, qui (à mon sens) est plus simple pour personnaliser son xml.

Voir ici
http://codes-sources.commentcamarche.net/forum/affich-1561684-c-et-xml#8
1
Rejoignez-nous