Parcourir xml en xsl avec une recursive
J'éprouve quelques difficultés en effet à parcourir mon xml en xsl afin de l'afficher dans un tableau.
Voila le xml :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| <menus>
<xml>
<tree>
<menu id="1" title="Menu1">
<menu id="2" title="Sous-Menu1" ></menu>
<menu id="3" title="Sous-Menu2" >
<menu id="4" title="Sous-Sous-Menu1" ></menu>
<menu id="5" title="Sous-Sous-Menu2" ></menu>
</menu>
<menu id="6" title="Sous-Menu3"></menu>
</menu>
<menu id="7" title="Menu2">
<menu id="8" title="Sous-Menu1" >
<menu id="9" title="Sous-Sous-Menu1" ></menu>
<menu id="10" title="Sous-Sous-Menu2" ></menu>
</menu>
</menu>
<menu id="11" title="Menu3">
<menu id="12" title="Sous-Menu1" ></menu>
<menu id="13" title="Sous-Menu2" ></menu>
</menu>
</menus>
</tree>
</xml> |
Mon objectif étant de parcourir mon xml en insérant dans la 1iere colonne les menus 2iem colonne sous-menus 3ieme les sous-sous-menus etc .. Sans qu'il y ait de limite.
J'ai donc pensé à utiliser une fonction récursive voici donc le code xsl que 'jai mis en place et qui ne fonctionne pas ...
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
<xsl:template match="/xml/tree/menus">
<table>
<xsl:apply-templates select="menu" />
</table>
<xsl:template match="menu" name="menu">
<tr>
<td><xsl:value-of select="title" /></td>
</tr>
<xsl:for-each select="menu">
<xsl:call-template name="menu" />
</xsl:for-each>
</xsl:template>
</xsl:template> |
J'espere avoir été assez clair, je suis un peu bloqué la mon cerveau boucle sans fin :)
Merci d'avance, Cordialement.
Tristan