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&amp;G_D 1</Nom>
    </Poste>
    <Poste ID ="7">
      <Nom>S&amp;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&amp;G_G 1</Nom>
    </Poste>
    <Poste ID ="7">
      <Nom>S&amp;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 :
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);              
            }
        }
J'obtiens :
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&amp;G_D 1</Nom>
    </Poste>
    <Poste ID ="7">
      <Nom>S&amp;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)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
foreach (var res in query)
            {
                Console.WriteLine(res.Value);              
            }
Pourriez-vous me donner une indication sur la requête à exécuter afin de solder ce problème ?

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.