Dans certains cas, il peut être utile d'afficher un arbre ou une arborescence : arbre binaire, arbre complexe. Une représentation graphique est toujours plus efficace qu'un code XML parfois obscur pour des personnes non intitiés.
Une transformation XSL générant du SVG est justement ce qu'il nous faut.
Il faudra d'abord générer un arbre simple en XML :
<tree>
<!-- Niveau racine -->
<node level="1" order="1" label="A" id="A"/>
<node level="1" order="2" label="B" id="B"/>
...
La racine est constituée d'éléments (node) sans parents, avec les attributs :
Les autres éléments (niveaux supérieurs de l'arbre) seront reliés de la façon suivante :
<node level="2" order="1" label="D" id="D">
<parent level="1" id="A"/>
<parent level="1" id="B"/>
<arent level="1" id="C"/>
</node>
Nous retrouvons les mêmes attributs pour node avec comme sous-éléments la description des parents. Pour chaque parent, il suffit juste d'utiliser le niveau (level) et identifiant (id). Un niveau n n'a pas forcément le niveau n-1 pour parents.
Il ne reste plus qu'à afficher l'arbre avec la feuille de style dynamique (téléchargeable ici) ou de générer un fichier svg avec la transformation statique (téléchargeable ici).
L'affichage de exemples nécessite un navigateur compatible SVG.
Vous pouvez visualiser la source afin de visualiser l'arbre au format XML.
Exemple 1 : plusieurs racines distinctes se rassemblant ensuite