Probleme pour lire fichier xml

Signaler
Messages postés
524
Date d'inscription
samedi 10 février 2007
Statut
Membre
Dernière intervention
16 octobre 2014
-
Messages postés
524
Date d'inscription
samedi 10 février 2007
Statut
Membre
Dernière intervention
16 octobre 2014
-
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:


<?xml version="1.0" encoding="ISO-8859-1"?>
<ServeurMySQL Nom="localhost">
<Date DateModif="02-12-2008"/>

<Champ nom=\"ip\" type=\"varchar(15)\" null=\"NO\" cle=\"\" valeurDefaut=\"\" autoincrementation=\"NO\"/>
<Champ nom=\"timestamp\" type=\"bigint(8)\" null=\"YES\" cle=\"\" valeurDefaut=\"88\" autoincrementation=\"NO\"/>

<Champ nom=\"id\" type=\"int(11)\" null=\"NO\" cle=\"PRI\" valeurDefaut=\"\" autoincrementation=\"YES\"/>
<Champ nom=\"a\" type=\"int(8)\" null=\"YES\" cle=\"\" valeurDefaut=\"8\" autoincrementation=\"NO\"/>
<Champ nom=\"azer\" type=\"varchar(5)\" null=\"NO\" cle=\"\" valeurDefaut=\"a\" autoincrementation=\"NO\"/>
<Champ nom=\"testunique\" type=\"varchar(6)\" null=\"NO\" cle=\"UNI\" valeurDefaut=\"\" autoincrementation=\"NO\"/>
<Champ nom=\"kjh\" type=\"varchar(7)\" null=\"NO\" cle=\"MUL\" valeurDefaut=\"\" autoincrementation=\"NO\"/>

</ServeurMySQL>


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);
}
}
}


?>

1 réponse

Messages postés
524
Date d'inscription
samedi 10 février 2007
Statut
Membre
Dernière intervention
16 octobre 2014

finalement j'ai abandonné le SimpleXML pour passer à XMLReader et ça marche .

merci.