Bonjour,

J'ai créé une fonction qui me permet de construire un menu à partir d'un fichier xml dont la structure est ainsi :

Code xml : 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
 
<?xml version="1.0" encoding="ISO-8859-15"?>
<donnees>
  <dossier>
    <nom_dossier>Actualités</nom_dossier>
    <flux>
      <nom_flux>LeMonde.fr : A la Une</nom_flux>
      <url>http://www.lemonde.fr/rss/une.xml</url>
    </flux>
  </dossier>
  <dossier>
  <nom_dossier>Sport</nom_dossier>
  <flux>
  <nom_flux>Lepoint.fr : Sport</nom_flux>
  <url>http://www.lepoint.fr/content/system/rss/sports/sports_doc.xml</url>
  </flux>
  </dossier>
</donnees>

et voilà ma fonction :

Code php : 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
30
31
32
33
34
35
36
37
 
 
function CreateMenu($file) {
 
$dom = new DOMDocument(); 
$dom->load($file);
 
$afficher_menu = '<ul class="menu">';
 
$menuList = $dom->getElementsByTagName('dossier');
foreach ($menuList as $dossier) {
 
    $nom_dossier = $dossier->getElementsByTagName('nom_dossier');
	$nom_dossier = $nom_dossier->item(0)->nodeValue;
 
	$afficher_menu = $afficher_menu."<li class=\"cat\">
		<a href=\"#\" onclick=\"expand(this)\">$nom_dossier</a>
		<ul>";
 
$fluxlist = $dom->getElementsByTagName('flux');
foreach ($fluxlist as $flux) {
 
    $nom_flux = $flux->getElementsByTagName('nom_flux');
    $nom_flux = $nom_flux->item(0)->nodeValue;
 
 
    $url = $flux->getElementsByTagName('url');
    $url = $url->item(0)->nodeValue;
 
	$afficher_menu = $afficher_menu."<li class=\"souscat\"><a href=\"#\" onclick=\"recup('$url');\">$nom_flux</a></li>";
}
	$afficher_menu = $afficher_menu.'</ul></li>';
}
	$afficher_menu = $afficher_menu.'</ul>';
 
	echo $afficher_menu;
}

Le problème est le suivant : Il me trouve bien les differents dossiers, mais à chaque fois, il relit toutes les <flux> et donc intègre tous les flux dans tout les dossiers.

Ma question est donc la suivante : Comment faire une boucle qui puisse lire seulement les flux du dossier concerné ?