Bonjour,
Je suis actuellement en train de realiser un projet en Silverlight (C#) et j'essayer de récuperer des recettes de cuisines ainsi que leurs ingrédients respectifs. Pour se faire j'ai un fichier XML qui contient le nom des recettes et leur ingrédients.
Ce que j'aimerai faire en fait c'est à partir du document XML récuperer les informations et les mettre dans mes classes.
J’ai une classe Recette qui contient :
String Nom
List<Ingredient> Ingredients
Int difficulté
Et une classe Ingredient qui contient :
String Nom
Int Quantité
Le problème est le suivant, j'arrive à faire correspondre sans problème le nom des recettes avec l'attribut "Nom" de ma classe mais je n'arrive pas à faire en sorte dans mon code que, lors de la definition du nom de la recette , il créé en meme temps chacun des objet Ingredient et les ajoute à la liste Ingredients de mon instance Recette en cours.
Je ne suis pas sur d'etre très clair dans mes explication donc n'hesitez pas à me poser des question. Ci dessous un extrait du XML et le code avec lequel je récupere mon tableau actuellement.
Je vous remercie tous par avance.
Cordialement.
Fichier XML
Extrait du code :
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
38
39
40 <Recettes> <Recette> <Nom>Pate a crepe</Nom> <Ingredients> <Ingredient> <Nom>Farine</ Nom > <Quantite>500</ Quantite > </Ingredient> <Ingredient> <Nom>Oeufs</ Nom > <Quantite>2</ Quantite > </Ingredient> <Ingredient> <Nom>Lait</ Nom > <Quantite>50</ Quantite > </Ingredient> </Ingredients> <difficulte>3</RequiredSkill> </Recette> <Recette> <Nom>Pates carbonara</Nom> <Ingredients> <Ingredient> <Nom>Oeufs</ Nom > <Quantite>2</ Quantite > </Ingredient> <Ingredient> <Nom>Lardons</ Nom > <Quantite>1</ Quantite > </Ingredient> <Ingredient> <Nom>Pates</ Nom > <Quantite>500</ Quantite > </Ingredient> </Ingredients> <difficulte>1</RequiredSkill> </Recette> </Recettes>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 XDocument oDoc = XDocument.Load("Ressource/Recettes.xml"); var myData = from info in oDoc.Descendants("Recettes").Descendants("Recette") select new Recette { Nom = Convert.ToString(info.Element("Nom").Value) //---------------------------------------------------------- // Cest ici que je voudrai ajouter les ingrediens a la liste //---------------------------------------------------------- }; oGrid = this.FindName("myDataGrid") as DataGrid; oGrid.ItemsSource = myData;
Partager