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 38 39 40 41 42 43 44
| // On ouvre le fichier
$xml = simplexml_load_file("temp.xml");
// On lance l'arbre
recursivite($xml);
/**
Fonction récursive
*/
function recursivite($racine, $niveau = 0) {
// Pour chaque item, on récupere le nom et l'objet SimpleXML de la balise
foreach($racine as $nom=>$elem) {
// On vérifie qu'il y a un noeud enfant
if(trim($elem) == "") {
// si oui...
for($i=1;$i<=$niveau;$i++) { echo " "; } // Pour la mise en forme wink.gif
// on affiche le nom
echo "La balise <strong>".$nom."</strong> ";
// on récupere les enfants
$enfants = $elem->children();
// on récupere les attributs s'ils sont présents
$str = "";
$attributs = $elem->attributes();
if(trim($attributs) != "") {
$str = "(";
foreach($attributs as $index=>$contenu) {
$str .= "[<strong>".$index."</strong>] <em>".$contenu."</em>, ";
}
$str = substr($str, 0, -2).")"; // Pour la mise en forme à nouveau
}
echo $str."
";
// comme on a un enfant, on réappelle la fonction (le niveau sert juste à la mise en forme)
recursivite($enfants, $niveau + 1);
} else {
// si on n'a pas d'enfant, on affiche ce qu'il y a dedans wink.gif
for($i=1;$i<=$niveau;$i++) { echo " "; }
echo "La balise <strong>".$nom."</strong> contient <em>".$elem."</em>
";
}
}
} |
Partager