IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

Convertion d'une liste, création d'un fichier XML [Débutant]


Sujet :

Windows Forms

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2018
    Messages : 22
    Points : 16
    Points
    16
    Par défaut Convertion d'une liste, création d'un fichier XML
    Bonjour, je suis actuellement en train de créer un logiciel PC permettant d'enregistrer et sauvegarder des commandes pour une pizzeria, je rencontre actuellement un problème et je ne trouve pas de solution à celui-ci, c'est pourquoi je demande votre aide, il s'agit de c# avec Windows Forms. (VS 2019)

    Voici le code que j'utilise :

    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
    datedujour = DateTime.Now.ToString("ddMMyyyy");
                string subdirectory = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\Entreprise\\" + datedujour;
     
                nomprenom = nom;
                numerotel = numtel;
                quantite = nbpizza;
                listedespizzas = listepizzas;
                prixtotal = total;
     
                char delim = ',';
                string str = listedespizzas.Aggregate((x, y) => x + delim + y);
     
                XElement xmlElements = new XElement("Pizzas", listedespizzas.Select(i => new XElement("Pizza", i)));
                using (XmlWriter writer = XmlWriter.Create(subdirectory + "\\" + nomprenom + " - " + quantite +" pizzas.xml"))
                {
                    writer.WriteStartElement("bondecommande");
                    writer.WriteElementString("nomprenom", nomprenom);
                    writer.WriteElementString("numtel", numerotel);
                    writer.WriteElementString("quantite", quantite);
                    writer.WriteElementString("listepizzas", System.Convert.ToString(xmlElements));
                    writer.WriteElementString("prixtotal", prixtotal.ToString());
                    writer.WriteEndElement();
                    writer.Flush();
                }
    Mon soucis est le suivant : J'essaie de convertir la liste de pizzas commandées par le client X et l'enregistrer dans un fichier XML sauvegardé dans un dossier à la date du jour, concernant la création du XML, tout est OK, SAUF la conversion de cette liste, en effet, voici ce que ça donne :

    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?xml version="1.0" encoding="utf-8"?><bondecommande><nomprenom>nom prenom</nomprenom><numtel>0612345678</numtel><quantite>2</quantite><listepizzas>&lt;Pizzas&gt;
      &lt;Pizza&gt;Coeur d'artichaut&lt;/Pizza&gt;
      &lt;Pizza&gt;Napolitaine&lt;/Pizza&gt;
    &lt;/Pizzas&gt;</listepizzas><prixtotal>25</prixtotal></bondecommande>

    J'aimerai que cela s'affiche comme ceci :

    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?xml version="1.0" encoding="utf-8"?>
    <bondecommande>
    <nomprenom>nom prenom</nomprenom>
    <numtel>0612345678</numtel>
    <quantite>2</quantite>
    <listepizzas>
      <Pizza>Coeur d'artichaut</Pizza>
      <Pizza>Napolitaine</Pizza>
    </listepizzas>
    <prixtotal>25</prixtotal>
    </bondecommande>

    Comme vous pouvez le voir, tout les noeuds se génèrent normalement sauf ceux concernant la liste, j'ai essayé de récupérer " xmlElements ", le convertir en string pour remplacer les "&lt:" et "gt:" par "<" et ">" mais une fois converti en XML ils reviennent d'origine et je n'arrive pas à trouver comment faire pour que le XML se génère comme je voudrais qu'il le soit.

    Auriez vous une alternative ou une solution pour remplacer ces caractères et créer ce fichier XML ?

  2. #2
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2018
    Messages : 22
    Points : 16
    Points
    16
    Par défaut Solution
    Solution trouvée !

    La voici pour ceux ayant le même soucis :

    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
    public class Pizza
        {
            public string nomclient { get; set; }
            public string numtele { get; set; }
            public string nombrpizza { get; set; }
            public List<string> listpizza { get; set; }
            public double totalprix { get; set; }
        }
     
    public static void enregistrercommande(string nom, string numtel, string nbpizza, List<string> listepizzas, double total)
            {
                datedujour = DateTime.Now.ToString("ddMMyyyy");
                string subdirectory = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\Entreprise\\" + datedujour;
     
                nomprenom = nom;
                numerotel = numtel;
                quantite = nbpizza;
                listedespizzas = listepizzas;
                prixtotal = total;
     
     
                Pizza p = new Pizza
                {
                    nomclient = nomprenom,
                numtele = numerotel,
                nombrpizza = quantite,
                listpizza = listedespizzas,
                totalprix = prixtotal
                };
     
                XmlSerializer xs = new XmlSerializer(typeof(Pizza));
                using (StreamWriter wr = new StreamWriter(subdirectory + "\\test.xml"))
                {
                    xs.Serialize(wr, p);
                }
     
            }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 07/10/2016, 12h51
  2. Projet de création d'une liste à partir d'un fichier txt
    Par genius2139 dans le forum VBScript
    Réponses: 64
    Dernier message: 09/02/2012, 19h21
  3. Réponses: 3
    Dernier message: 10/06/2010, 16h58
  4. création d'une liste d'après un fichier en c
    Par ghislain118 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 21/12/2005, 10h56
  5. [Stratégie]Sauvegarde d'une liste chainée dans un fichier
    Par BernardT dans le forum Général Java
    Réponses: 17
    Dernier message: 25/07/2005, 17h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo