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 :
La fonction me retourne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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>
- 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.
Merci de votre aide !
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 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; }
Partager