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 :
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 : 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(); }
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><Pizzas> <Pizza>Coeur d'artichaut</Pizza> <Pizza>Napolitaine</Pizza> </Pizzas></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 "<:" 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 ?
Partager