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 :
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());
Pour récupérer le titre, voici mon code :
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 :

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);
            }
mais je récupère tous les items d'un coup et je ne les sépare pas.

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.