Bonjour,
J'ai un problème insoluble pour l'instant.
Voici une partie du code xml de base
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
41
42
43
44
45
46
47
48
49
50
51
52
53
 
<DocumentElement>
  <Element>
    <Annee>2009</Annee>
    <Saison>Automne</Saison>
    <CodeDepartementPedagogique>EDIM</CodeDepartementPedagogique>
    <NomDepartementPedagogique>Ergonomie, design et ingénierie mécanique</NomDepartementPedagogique>
    <CodeFiliere>DIC</CodeFiliere>
    <NomFiliere>Design industriel et conception</NomFiliere>
    <ActiviteFiliere>Active</ActiviteFiliere>
  </Element>
  <Element>
    <Annee>2009</Annee>
    <Saison>Automne</Saison>
    <CodeDepartementPedagogique>EDIM</CodeDepartementPedagogique>
    <NomDepartementPedagogique>Ergonomie, design et ingénierie mécanique</NomDepartementPedagogique>
    <CodeFiliere>DMS</CodeFiliere>
    <NomFiliere>Design multi-sensoriel</NomFiliere>
    <ActiviteFiliere>Desactive</ActiviteFiliere>
  </Element>
  <Element>
<Element>
    <Annee>2009</Annee>
    <Saison>Automne</Saison>
    <CodeDepartementPedagogique>GESC</CodeDepartementPedagogique>
    <NomDepartementPedagogique>Génie électrique et systèmes de commande</NomDepartementPedagogique>
    <CodeFiliere>ACM</CodeFiliere>
    <NomFiliere>Actionneurs et commande des systèmes mécatroniques</NomFiliere>
    <ActiviteFiliere>Active</ActiviteFiliere>
  </Element>
...
...
<Element>
    <Annee>2010</Annee>
    <Saison>Printemps</Saison>
    <CodeDepartementPedagogique>EDIM</CodeDepartementPedagogique>
    <NomDepartementPedagogique>Ergonomie, design et ingénierie mécanique</NomDepartementPedagogique>
    <CodeFiliere>DIC</CodeFiliere>
    <NomFiliere>Design industriel et conception</NomFiliere>
    <ActiviteFiliere>Active</ActiviteFiliere>
  </Element>
  <Element>
    <Annee>2010</Annee>
    <Saison>Printemps</Saison>
    <CodeDepartementPedagogique>EDIM</CodeDepartementPedagogique>
    <NomDepartementPedagogique>Ergonomie, design et ingénierie mécanique</NomDepartementPedagogique>
    <CodeFiliere>DMS</CodeFiliere>
    <NomFiliere>Design multi-sensoriel</NomFiliere>
    <ActiviteFiliere>Desactive</ActiviteFiliere>
  </Element>
...
...
</DocumentElement>
Pour résumer le document, il y a une liste d'élément pour chaque élément il y a une année, une saison, un département, une filière.
Chaque filière apparaît autant de fois qu'il y a d'années et de saisons pour lesquelles elles sont au programme. Chaque département apparaît autant de fois que ses filières sont au programme. Chaque année + saison apparaît autant de fois qu'une filière l'utilise.

Je voudrais faire une requête XPath unique afin d'avoir une variable itérable qui me sorte uniquement et une seule fois par saison, tous les départements. Voici ce que j'ai essayé, mais c'est faux et je ne parviens pas à trouver la bonne expression.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
<xsl:variable name="ListeDepartementEtablissement"
			select="/DocumentElement/Element
				[not (CodeDepartementPedagogique=preceding-sibling::Element/CodeDepartementPedagogique
				and Annee=preceding-sibling::Element/Annee
				and Saison=preceding-sibling::Element/Saison)]"/>
J'ai bien compris pourquoi c'était faux, inutile de me l'expliquer, mais je n'arrive pas à trouver comment faire pour que ce soit juste. L'idée serait d'arriver à avoir un preceding sur tous les elements à la fois. J'ai voulu essayer un concat, je n'ai pas trouvé comment l'écrire et d'autres solustions dont je ne me souviens plus...
En bref, je sèche

Si vous avez un peu de temps à m'accorder ce serait très sympa !
D'avance merci !