Bonjour,
J'ai un fichier XML
Code xaml : 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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72 <?xml version="1.0" encoding="utf-8" ?> <Postes> <Ligne ID ="1" Nom="SAVD"> <Poste ID ="1"> <Nom>CFL_D 1</Nom> </Poste> <Poste ID ="2"> <Nom>CFL_D 2</Nom> </Poste> <Poste ID ="3"> <Nom>CFL_D 3</Nom> </Poste> <Poste ID ="4"> <Nom>CFL_D 4</Nom> </Poste> <Poste ID ="5"> <Nom>CFL_D 5</Nom> </Poste> <Poste ID ="6"> <Nom>S&G_D 1</Nom> </Poste> <Poste ID ="7"> <Nom>S&G_D 2</Nom> </Poste> </Ligne> <Ligne ID ="2" Nom="SAVG"> <Poste ID ="1"> <Nom>CFL_G 1</Nom> </Poste> <Poste ID ="2"> <Nom>CFL_G 2</Nom> </Poste> <Poste ID ="3"> <Nom>CFL_G 3</Nom> </Poste> <Poste ID ="4"> <Nom>CFL_G 4</Nom> </Poste> <Poste ID ="5"> <Nom>CFL_G 5</Nom> </Poste> <Poste ID ="6"> <Nom>S&G_G 1</Nom> </Poste> <Poste ID ="7"> <Nom>S&G_G 2</Nom> </Poste> </Ligne> <Ligne ID ="2" Nom="SAR"> <Poste ID ="1"> <Nom>PT 1</Nom> </Poste> <Poste ID ="2"> <Nom>PT 2</Nom> </Poste> <Poste ID ="3"> <Nom>PT 3</Nom> </Poste> <Poste ID ="4"> <Nom>PT 4</Nom> </Poste> <Poste ID ="5"> <Nom>Finition 1</Nom> </Poste> <Poste ID ="6"> <Nom>Finition 2</Nom> </Poste> <Poste ID ="7"> <Nom>Finition 3</Nom> </Poste> </Ligne> </Postes>
Je cherche à récupérer les "Nom"(s) des "Poste"(s) en fonction de l'attribut de la "Ligne" sélectionné.
En effectuant la requête suivante, j'arrive à isoler l'arborescence que je souhaite :
J'obtiens :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 public void findElementWithOtherElement() { xelement = XElement.Load(filePath); var query = from data in xelement.Elements() where (string)data.Attribute("Nom").Value == "SAVD" select data; foreach (var res in query) { Console.WriteLine(res); } }
Code xaml : 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 <Ligne ID ="1" Nom="SAVD"> <Poste ID ="1"> <Nom>CFL_D 1</Nom> </Poste> <Poste ID ="2"> <Nom>CFL_D 2</Nom> </Poste> <Poste ID ="3"> <Nom>CFL_D 3</Nom> </Poste> <Poste ID ="4"> <Nom>CFL_D 4</Nom> </Poste> <Poste ID ="5"> <Nom>CFL_D 5</Nom> </Poste> <Poste ID ="6"> <Nom>S&G_D 1</Nom> </Poste> <Poste ID ="7"> <Nom>S&G_D 2</Nom> </Poste> </Ligne>
Je n'arrive pas, à trouver la requête me permettant de lister chaque Nom de Poste.
En effectuant un .Value, j'obtiens tous les Noms des Postes dans une seule variable (CFL_D 1CFL_D 2CFL_D 3CFL_D 4CFL_D 5S&G_D 1S&G_D 2)
Pourriez-vous me donner une indication sur la requête à exécuter afin de solder ce problème ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 foreach (var res in query) { Console.WriteLine(res.Value); }
Je cherche à obtenir une liste de ce genre afin que je puisse la stocker terme à terme dans un tableau.
CFL_D 1
CFL_D 2
CFL_D 3
CFL_D 4
CFL_D 5
S&G_D 1
S&G_D 2
Je vous remercie d'avance.
Partager