Bonjour, j'ai le problème suivant en XSL et j'arrive pas à voir comment le résoudre.

Soit le xml suivant:
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
 
<document>
   <section id="A">
       a a a a a
       <section id="AA">
          AA AA AA AA 
       </section>
       <section id="AB">
          AB AB AB AB 
       </section>
    </section>
    <section id="B">
          b b b b 
    </section>
   <section id="C">
       c c c c
       <section id="CA">
          ca ca ca ca 
       </section>
    </section>
</document>
j'ai besoin de générer ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 <item id="A" next="AA">a a a a</item>
 <item id="AA" previous="A" next="AB">AA AA AA AA</item>
 <item id="AB" previous="AA" next="B">AB AB AB AB</item>
 <item id="B" previous="AB" next="C">b b b b</item>
 <item id="C" previous="B" next="CA">c c c c</item>
 <item id="CA" previous="C">ca ca ca ca</item>

Alors, pas de problème pour la partie id, je peux très bien faire

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
<xsl:for-each select="//document//section">
....
</xsl:for-each>
Mais j'ignore comment, à partir du noeud courant, demander "le noeud précédent dans la liste //document//section", pareil avec le noeud suivant. Si l'architecture n'était pas à plusieurs niveaux, j'aurais utilisé previous-sibling et next-sibling, mais ici ce n'est pas possible en raison de la hierarchie.

Si quelqu'un a une idée, merci d'avance.
PS: XSL v2