Récursivité, affichage d'un contenu XML sous forme de liste
Bonjour,
j'essaie de faire ma fonction récursive pour afficher le contenu d'un document XML, ca fonctionne partiellement.
Par exemple si j'ai le document XML suivant :
Code:
1 2 3 4 5 6 7
|
<el name="Bases" ref="1" type="default">
<el name="Les Mécanismes" ref="5" type="default"></el>
<el name="Les Dés" ref="6" type="default"></el>
<el name="Les Fractions" ref="7" type="default"></el>
<el name="La Multiplication" ref="8" type="default"></el>
</el> |
La fonction me retourne :
- Bases
- Les Mécanismes
- Les Dés
- Les Fractions
- La Multiplication
- Les Mécanismes
- Les Dés
- Les Fractions
- La Multiplication
Voici le code de ma fonction, je souhaite qu'elle retourne un contenu, et non qu'elle l'affiche directement via des echos.
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 25 26 27
|
function ReturnArbreXML( $domNodeList )
{
$html = '<ul>';
foreach( $domNodeList as $Node )
{
$html .= '<li>';
If ( $Node->getAttribute( "type" ) == 'default' )
{
$class = 'clickable';
}
else
{
$class = 'nonclickable';
}
$html .= '<a href="#" class="' . $class . '">' . $Node->getAttribute( "name" ) . '<span style="display:none;">' . $Node->getAttribute( "ref" ) . '</span></a>';
If ( $Node->hasChildNodes() )
{
$newDomNodeList = $Node->getElementsByTagName("el");
$html .= ReturnArbreXML( $newDomNodeList );
}
$html .= '</li>';
}
$html .= '</ul>';
return $html;
} |
Merci de votre aide !