Probleme pour créer un fichier XML

Signaler
Messages postés
101
Date d'inscription
mercredi 5 novembre 2008
Statut
Membre
Dernière intervention
31 août 2009
-
Messages postés
834
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
14 janvier 2017
-
Bonsoir,

Je voudrais savoir comment fait on en C# pour créer un fichier xml comme cela:

<festivals>

<nom_festival></nom_festival>

<date_debut></date_debut>

<date_fin></date_fin>

<concert>

<nom_concert></nom_concert>

<genre_concert></genre_concert>

</concert>

<concert>

<nom_concert></nom_concert>

<genre_concert></genre_concert>

</concert>

</festival>

Merci pour votre aide

6 réponses

Messages postés
101
Date d'inscription
mercredi 5 novembre 2008
Statut
Membre
Dernière intervention
31 août 2009

excusez moi je me suis un peu trompé dans la structure:

<festivals>
      <festival>
           <nom_festival></nom_festival>
           <date_debut></date_debut>
           <date_fin></date_fin>
           <concert>
                 <nom_concert></nom_concert>
                 <genre_concert></genre_concert>
           </concert>
           <concert>
                 <nom_concert></nom_concert>
                 <genre_concert></genre_concert>
           </concert>
      <festival>
</festivals>
Messages postés
101
Date d'inscription
mercredi 5 novembre 2008
Statut
Membre
Dernière intervention
31 août 2009

voila mon code avec ce que j'obtiens:

  public void ajouter_festival(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);
               

                // On écrit ces valeurs dans les éléments du noeud du fichier xml
                xmlFestival.DocumentElement.AppendChild(elementFestival);
                xmlFestival.DocumentElement.AppendChild(elementConcertChoisi);

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

                // écrire la suite pour insérer dans la collection tous les programmes d'un concert
                // insérer tous les programmes concernant le festival
            }

voici le résultat en fichier xml:

<?xml version="1.0" encoding="UTF-8"?>
<festivals>
  <Festival>
    <Nom_festival>festival jazz</Nom_festival>
    <Date_debut>31/05/2009</Date_debut>
    <Date_fin>31/05/2009</Date_fin>
  </Festival>
  <Concerts>
    <Nom_concert>loulou</Nom_concert>
    <Heure_concert>10:00</Heure_concert>
    <Duree_concert>190 min</Duree_concert>
    <Lieu_concert>PARIS</Lieu_concert>
    <Salle_concert>ZENITH</Salle_concert>
    <Genre_concert>momu</Genre_concert>
  </Concerts>
</festivals>

MAIS moi je voudrais obtenir la structure cité dans le massage ci dessus.

Merci de votre aide
Messages postés
101
Date d'inscription
mercredi 5 novembre 2008
Statut
Membre
Dernière intervention
31 août 2009

personne ne peut m'aider??? Je n'y arrive pas à résoudre mon probleme.

Merci
Messages postés
834
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
14 janvier 2017
29
Bonjour

Remplace ta derniere séquence
                // On écrit ces valeurs dans les éléments du noeud du fichier xml
                xmlFestival.DocumentElement.AppendChild(elementFestival);
                xmlFestival.DocumentElement.AppendChild(elementConcertChoisi);

par
                // On écrit ces valeurs dans les éléments du noeud du fichier xml
                XmlNode node = xmlFestival.DocumentElement.AppendChild(elementFestival);
                node.AppendChild(elementConcertChoisi);

C# is amazing, enjoy it!
Messages postés
101
Date d'inscription
mercredi 5 novembre 2008
Statut
Membre
Dernière intervention
31 août 2009

yes!!!!!super cool, j'ai galéré  pendant des heures.

Peux tu m'expliquer les 2 lignes que tu m'as envoyé.

Merci beaucoup
Messages postés
834
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
14 janvier 2017
29
Bonjour

Lorsque tu crées des éléments xml, ils sont tous par défaut au même niveau, si tu veux les hierarchiser il faut créer des noeuds, un peu comme dans un treeview.
la difference entre tes lignes d'origines et les dernieres c'est dque dans les premieres l'insertion est toujours au même niveau (1er niveau) alors que dans les suivantes on insere 1 element au premier niveau en récuperant son handle, puis un insere un element à l'interieur, donc à un second niveau.
Si tu veux ajouter un element à "concert", fais la même chose en inserant dans "concert"

C# is amazing, enjoy it!