Lecture de données à partir d'une boucle foreach
Bonjour,
J'ai créé une fonction qui me permet de construire un menu à partir d'un fichier xml dont la structure est ainsi :
Code:
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:
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é ?