bonjour! j'avais vu exemple de code sur un forum qui parcourait un fichier xml.
j'ai modifié le code et ça marche sur ma machine mais lorsque je teste sur mon serveur ça ne marche pas.
exemple de mon xml:
en fait lorsque la fonction croise "/" il arrete de lire le fichier. ici il arretera de lire le fichier a partir de la balise <Date.. />
je ne sais vraimemt pas pourquoi. et pourtant il marche sur moi ma machine
voici le code:
<?php
function lire_fichier_xml()
{
// on charge le fichier xml
$xml = simplexml_load_file("export_my_sql_xml2.xml");
// On appelle la fonction récursive
recursivite($xml);
}
/***************************************/
function recursivite($racine) {
// 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
//echo $racine;
if(trim($elem) == "") {
// si oui...
$enfants = $elem->children();
// on récupere les attributs s'ils sont présents
$attributs = $elem->attributes();
$NomTable=$attributs;
if(trim($attributs) != "")
{
$count=1;
if ($nom=="Table")
{
$GLOBALS['nom_table']=$attributs;
}
foreach($attributs as $index=>$contenu) {
if ($nom=="Table")
{
ajoute_table('localhost','root','','bdtest',$contenu);
}
$description[$count]=$contenu;
$count++;
}
}
if (isset($description[2]) && $description[2]!="")
{
$info_champ = array($description[1],$description[2],$description[3],$description[4],$description[5],$description[6]);
$nom_table_param2=$GLOBALS['nom_table'];
ajoute_champ('localhost','root','','bdtest',$nom_table_param2,$info_champ);
modifie_attribut('localhost','root','','bdtest',$nom_table_param2,$info_champ);
}
// comme on a un enfant, on réappelle la fonction
recursivite($enfants);
}
}
}