Partage
  • Partager sur Facebook
  • Partager sur Twitter

problème édition attribut xml(noeuds de même nom)

Sujet résolu
    18 mai 2018 à 15:17:05

    Bonjour je suis en plein développement d'une application éditeur de fichier xml 

    voici mon fichier  xml  :

    <configuration>
     
      <connection>
        <add name="a changer " 
    	connection="pas important"
    	provider="pas important " />
        <add name="a changer "
    	connection="pas important" 
    	provider="pas important" />
      </connection>
      </configuration>

    le but étant de pouvoir changer ce qui y a les deux attributs "name" (donc changer le "a changer" dans les attributs "name" )dans les deux nœuds "add" le problème étant que mon programme ne change que le premier nœud et je ne sais pas comment faire pour qu'il change les deux en même temps 

    voici mon code : 

    using System;
    using System.Collections;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using System.Xml;
    
    
    namespace soft_test_edit_xml
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
            XmlDocument fichier = new XmlDocument();
            string path;
            private void button1_Click(object sender, EventArgs e)// bouton pour chercher le dossier.xml
            {
    
                OpenFileDialog chemin = new OpenFileDialog();
                chemin.Filter = "XML|*.xml";
                if (chemin.ShowDialog() == DialogResult.OK)
                {
                    
                    path = chemin.FileName;
                    fichier = new XmlDocument();
                    fichier.Load(path);
    
                
                    textBox1.Text = fichier.SelectSingleNode("configuration/connection").InnerText;
    
                   
                    
                }
            }
    
           
            private void button2_Click(object sender, EventArgs e)// bouton pour sauvegarder les changement
            {
           
       
                   fichier.SelectSingleNode("configuration/connection/add").Attributes["name"].Value = textBox1.Text;
              
    
                fichier.Save(path);
                
    
            }
            private void button3_Click(object sender, EventArgs e)// bouton pour afficher dans une liste box la value des attribues name
            {
                fichier.Load(path);
                XmlNodeList route = fichier.GetElementsByTagName("add");
                foreach (XmlNode add in route)
                {
                  
                    listBox1.Items.Add("name:" + add.Attributes[0].Value);//affichage attribut name
    
                }
            }
        }
    }
    


    Voila , en espérant que mon problème puisse avoir une réponse 

    Je vous remercie d'avance

    Cordialement .

    • Partager sur Facebook
    • Partager sur Twitter
      20 mai 2018 à 18:55:50

      Il y a une logique dans ton histoire que je n'explique pas.

      Tu dis vouloir modifier plusieurs noeuds...Et pourtant ton code nous indique que tu n'en modifies qu'un seul (SelectSingleNode([...])). Comment veux-tu que ça fonctionne?

      Regarde la doc, elle peut être très utile. Pour en modifier plusieurs, il te faut déjà commencer par en sélectionner plusieurs, puis faire une boucle sur cette liste de noeud qui viendra exécuter ton "Attributes[...] =" sur chacun des noeud trouvé.

      -
      Edité par Nisnor 20 mai 2018 à 18:57:10

      • Partager sur Facebook
      • Partager sur Twitter
        22 mai 2018 à 16:24:49

        Merci mon problème était le fait que je n'arrivait pas à voir comment changer le SelectSingleNode() je voulais utiliser un SelectNodes() à la place mais en vain , j'ai donc creé un XmlNodeList qui récupère tout les éléments "add" 

        et j'ai ensuite mis un foreach pour changer les deux attributs simultanément  !

        • Partager sur Facebook
        • Partager sur Twitter

        problème édition attribut xml(noeuds de même nom)

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown