Bonjour,
Je suis face à une problématique avec une transformation XSL.
Je dispose d'une grappe de ce type :
Le but de la manoeuvre est d'ordonner les différents noeud TREE par niveau.
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 <datas> <TREES> <TREE> <TREE_ID>190287</TREE_ID> <FATHER_ID>48973</FATHER_ID> <LEVEL_DES>Niveau 1</LEVEL_DES> </TREE> <TREE> <TREE_ID>49109</TREE_ID> <FATHER_ID>49085</FATHER_ID> <LEVEL_DES>Niveau 3</LEVEL_DES> </TREE> <TREE> <TREE_ID>88708</TREE_ID> <FATHER_ID>49085</FATHER_ID> <LEVEL_DES>Niveau 3</LEVEL_DES> </TREE> <TREE> <TREE_ID>49085</TREE_ID> <FATHER_ID>190287</FATHER_ID> <LEVEL_DES>Niveau 2</LEVEL_DES> </TREE> <TREE> <TREE_ID>48973</TREE_ID> <FATHER_ID>0</FATHER_ID> <LEVEL_DES>Niveau 0</LEVEL_DES> </TREE> </TREES> </datas>
Avant j'utilisais un sous noeud qui correspondait au niveau :
Il me permettait d'organiser simplement le fichier dans l'ordre du père vers ces fils en utilisant un xsl:sort : <xsl:sort select="LEVEL" data-type="number" order="ascending"/>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <TREE> <TREE_ID>48973</TREE_ID> <FATHER_ID>0</FATHER_ID> <LEVEL_DES>Niveau 0</LEVEL_DES> <NIV>1</NIV> </TREE>
Problématique ! On vient de se rendre compte que les fichiers arborescent n'ont pas une balise NIV qui correspond toujours au bon niveau. Par exemple j'ai déjà eu deux noeuds TREE qui avait le même niveau, mais l'un était l'enfant de l'autre ... autant dire n'importe quoi...
Ma question est comment je pourrais organiser mon arborescence dans le bonne ordre en partant du noeud principale (le père de tout étant 0). J'ai pensé à utiliser la récursivité, mais je ne trouve pas la bonne syntaxe pour y arriver. Donc si quelqu'un aurait une idée d'orientation je suis preneur ! Je ne cherche pas une solution clé en main, mais voir si ce genre de problématique est possible et vers quoi il faut chercher.
Merci d'avance
Partager