Ajouter un élément dans un fichier xml en C#

suethi75 Messages postés 101 Date d'inscription mercredi 5 novembre 2008 Statut Membre Dernière intervention 31 août 2009 - 1 juin 2009 à 08:16
suethi75 Messages postés 101 Date d'inscription mercredi 5 novembre 2008 Statut Membre Dernière intervention 31 août 2009 - 2 juin 2009 à 09:31
Bonjour,

Je souhaiterai un ajouter un élément (en caractère gras) dans mon fichier xml:

<Festival>
    <Nom_festival>titi</Nom_festival>
    <Date_debut>01/06/2009</Date_debut>
    <Date_fin>01/06/2009</Date_fin>
       <Concerts>
          <Nom_concert>a</Nom_concert>
          <Heure_concert>b</Heure_concert>
          <Duree_concert>c</Duree_concert>
          <Lieu_concert>d</Lieu_concert>
          <Salle_concert>e</Salle_concert>
          <Genre_concert>f</Genre_concert>
      </Concerts>
      <Concerts>
          <Nom_concert>g</Nom_concert>
          <Heure_concert>h</Heure_concert>
          <Duree_concert>i</Duree_concert>
          <Lieu_concert>j</Lieu_concert>
          <Salle_concert>k</Salle_concert>
          <Genre_concert>l</Genre_concert>
       </Concerts>
  </Festival>

voici mon fichier xml:

 public void ecrire_xmlFestival(programme leProgramme)
        {
             programme programmeChoisi = new programme();

                //Initialisation des noeuds et des éléments
                XmlDocument xmlFestival = new XmlDocument();

                XmlElement elementFestival;
                XmlElement elementNom_festival;
                XmlElement elementDate_debut;
                XmlElement elementDate_fin;

                XmlElement elementConcertChoisi;
                XmlElement elementNom_du_concert;
                XmlElement elementHeure_concert;
                XmlElement elementDuree_concert;
                XmlElement elementLieu_concert;
                XmlElement elementSalle_concert;
                XmlElement elementGenre_concert;
                
                

                // Chargement du fichier xml qui se situe dans le BIN DEBUG
                //xmlConcert = new XmlDocument();
                xmlFestival.Load(@".\listFestival.xml");
                

                //Création des balises
                elementFestival = xmlFestival.CreateElement("Festival");

                elementNom_festival = xmlFestival.CreateElement("Nom_festival");
                elementNom_festival.InnerText = nomFestival;

                elementDate_debut = xmlFestival.CreateElement("Date_debut");
                elementDate_debut.InnerText = dateDebut;

                elementDate_fin = xmlFestival.CreateElement("Date_fin");
                elementDate_fin.InnerText = dateFin;

                elementConcertChoisi = xmlFestival.CreateElement("Concerts");

                elementNom_du_concert = xmlFestival.CreateElement("Nom_concert");
                elementNom_du_concert.InnerText = nomConcert;

                elementHeure_concert = xmlFestival.CreateElement("Heure_concert");
                elementHeure_concert.InnerText = leProgramme.Heure;

                elementDuree_concert = xmlFestival.CreateElement("Duree_concert");
                elementDuree_concert.InnerText = dureeConcert;

                elementLieu_concert = xmlFestival.CreateElement("Lieu_concert");
                elementLieu_concert.InnerText = leProgramme.LieuSpectacle;

                elementSalle_concert = xmlFestival.CreateElement("Salle_concert");
                elementSalle_concert.InnerText = leProgramme.SalleSpectacle;

                elementGenre_concert = xmlFestival.CreateElement("Genre_concert");
                elementGenre_concert.InnerText = genreConcert;

                // On ajoute la valeur à l'élément
                elementFestival.AppendChild(elementNom_festival);
                elementFestival.AppendChild(elementDate_debut);
                elementFestival.AppendChild(elementDate_fin);

                elementConcertChoisi.AppendChild(elementNom_du_concert);
                elementConcertChoisi.AppendChild(elementHeure_concert);
                elementConcertChoisi.AppendChild(elementDuree_concert);
                elementConcertChoisi.AppendChild(elementLieu_concert);
                elementConcertChoisi.AppendChild(elementSalle_concert);
                elementConcertChoisi.AppendChild(elementGenre_concert);

                XmlNode node = xmlFestival.DocumentElement.AppendChild(elementFestival);
                node.AppendChild(elementConcertChoisi);

                // On sauvegarde le fichier xml
                xmlFestival.Save(@".\listFestival.xml");
}

Merci pour votre aide

5 réponses

suethi75 Messages postés 101 Date d'inscription mercredi 5 novembre 2008 Statut Membre Dernière intervention 31 août 2009
1 juin 2009 à 09:08
personne ne peut m'aider???

Merci pour votre aide
0
suethi75 Messages postés 101 Date d'inscription mercredi 5 novembre 2008 Statut Membre Dernière intervention 31 août 2009
1 juin 2009 à 09:43
j'ai besoin d'aide je ne sais pas comment faire.

Merci
0
suethi75 Messages postés 101 Date d'inscription mercredi 5 novembre 2008 Statut Membre Dernière intervention 31 août 2009
1 juin 2009 à 11:57
???????
0
cs_Robert33 Messages postés 834 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 14 janvier 2017 33
1 juin 2009 à 17:46
Re,

Regardes comment j'ai introduis une boucle dans to code pour créer des "concerts", le reste tu devrais pouvoir le faire ;-)

en bleu foncé ton code que j'ai déplacé.

 public void ecrire_xmlFestival(programme leProgramme)
        {
             programme programmeChoisi = new programme();

                //Initialisation des noeuds et des éléments
                XmlDocument xmlFestival = new XmlDocument();

                XmlElement elementFestival;
                XmlElement elementNom_festival;
                XmlElement elementDate_debut;
                XmlElement elementDate_fin;

                XmlElement elementConcertChoisi;
                XmlElement elementNom_du_concert;
                XmlElement elementHeure_concert;
                XmlElement elementDuree_concert;
                XmlElement elementLieu_concert;
                XmlElement elementSalle_concert;
                XmlElement elementGenre_concert;
                
                

                // Chargement du fichier xml qui se situe dans le BIN DEBUG
                //xmlConcert = new XmlDocument();
                xmlFestival.Load(@".\listFestival.xml");
                

                //Création des balises
                elementFestival = xmlFestival.CreateElement("Festival");

                elementNom_festival = xmlFestival.CreateElement("Nom_festival");
                elementNom_festival.InnerText = nomFestival;

                elementDate_debut = xmlFestival.CreateElement("Date_debut");
                elementDate_debut.InnerText = dateDebut;

                elementDate_fin = xmlFestival.CreateElement("Date_fin");
                elementDate_fin.InnerText = dateFin;

                // On ajoute la valeur à l'élément
                elementFestival.AppendChild(elementNom_festival);
                elementFestival.AppendChild(elementDate_debut);
                elementFestival.AppendChild(elementDate_fin);
                XmlNode node = xmlFestival.DocumentElement.AppendChild(elementFestival);

for (int i=0; i< 10; i++) // création 10 concerts identiques
{
                elementConcertChoisi = xmlFestival.CreateElement("Concerts");

                elementNom_du_concert = xmlFestival.CreateElement("Nom_concert");
                elementNom_du_concert.InnerText = nomConcert;

                elementHeure_concert = xmlFestival.CreateElement("Heure_concert");
                elementHeure_concert.InnerText = leProgramme.Heure;

                elementDuree_concert = xmlFestival.CreateElement("Duree_concert");
                elementDuree_concert.InnerText = dureeConcert;

                elementLieu_concert = xmlFestival.CreateElement("Lieu_concert");
                elementLieu_concert.InnerText = leProgramme.LieuSpectacle;

                elementSalle_concert = xmlFestival.CreateElement("Salle_concert");
                elementSalle_concert.InnerText = leProgramme.SalleSpectacle;

                elementGenre_concert = xmlFestival.CreateElement("Genre_concert");
                elementGenre_concert.InnerText = genreConcert;

                elementConcertChoisi.AppendChild(elementNom_du_concert);
                elementConcertChoisi.AppendChild(elementHeure_concert);
                elementConcertChoisi.AppendChild(elementDuree_concert);
                elementConcertChoisi.AppendChild(elementLieu_concert);
                elementConcertChoisi.AppendChild(elementSalle_concert);
                elementConcertChoisi.AppendChild(elementGenre_concert);

                node.AppendChild(elementConcertChoisi); // ajout du concert au festival en cours
}

                // On sauvegarde le fichier xml
                xmlFestival.Save(@".\listFestival.xml");
}

C# is amazing, enjoy it!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
suethi75 Messages postés 101 Date d'inscription mercredi 5 novembre 2008 Statut Membre Dernière intervention 31 août 2009
2 juin 2009 à 09:31
ok, c'est ce genre de structure que je souhaite mais je voudrais ajouter un élément dans le noeud. Je n'arrive pas l'introduire dans la structure.

Merci pour votre aide
0
Rejoignez-nous