Bonjour,
Avec C# .NET, j'utilise LINQ pour parser du XML, mais je ne maîtrise pas totalement LINQ pour XML.
J'ai le code XML suivant :
Code XML : 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 <?xml version="1.0" encoding="utf-8" ?> <Root> <PackageVersion version="1.0"/> <Window title="test"> <ComboBox label="labelTest1"> <item>article1</item> <item>article2</item> <item>article3</item> </ComboBox> <ComboBox label="labelTest2"> <item>base1</item> <item>base2</item> </ComboBox> </Window> </Root>
J'aimerais récupérer dans ce fichier XML, plusieurs informations comme la version, le titre et les items.
Pour récupérer la version, voici mon code :
Pour récupérer le titre, voici mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 IEnumerable<string> version = from item in xelement.Elements("PackageVersion") select (string)item.Attribute("version"); Console.WriteLine("Version : {0}", version.First());
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 IEnumerable<string> title = from item in xelement.Elements("Window") select (string)item.Attribute("title"); Console.WriteLine("Title : {0}", title.First());
Si vous avez une meilleure manière d'écrire les deux codes précédents, pourriez-vous le montrer ? Merci.
Je bloque sur la récupération de chaque comboBox avec son label et ses items.
J'aimerais mettre dans deux List<string> chaque item en string.
Par exemple, la liste listComboBox1 contiendrait article1, article2 et article3.
La liste listComboBox2 contiendrait base1 et base2.
J'ai essayé avec le code suivant :
mais je récupère tous les items d'un coup et je ne les sépare pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 IEnumerable<XElement> combos = xelement.Elements("Window").Elements("ComboBox").Elements("item"); foreach (var combo in combos) { Console.WriteLine(combo.Value); }
Je n'arrive pas à séparer en deux listes les items de chaque comboBox.
J'aimerais aussi récupérer séparément le label de chaque combobox séparément.
Merci de votre aide.
Partager