Page 1 sur 1

simplexml_load_file : Verifier doc xml non vide

Posté : 16 juin 2006, 10:27
par jdelsinne
Bonjour,
J'utilise la fonction simplexml_load_file pour charger mon fichier xml.
Dû à une erreur d'écriture, le fichier était présent, mais vide.
Dans ce cas, la fonction lance un mess. d'erreur :

Code : Tout sélectionner

Warning: simplexml_load_file() [function.simplexml-load-file]: /var/www/publicSite//src/xml/infosponctuelles/infoFromAdmin.xml:1: parser error : Document is empty in /var/www/publicSite/admin/src/php/actualites/index.php on line 99
Y a t-il une façon d'éviter cette erreur ?

Merci,
Jessica

Posté : 16 juin 2006, 10:59
par zeus
Une idée en l'air, mais si tu testais la taille de ton fichier avec filesize() avant de lancer l'import xml ?

Posté : 16 juin 2006, 10:59
par Mouet
 if (!simplexml_load_file(..)) simplexml_load_file(...);

Posté : 16 juin 2006, 11:01
par zeus
c'est dommage de faire le chargement 2 fois, non ?

De plus, c'est pas simplexml_load_file() qui pose problème ?

Sinon, on peut faire
if ($xml = simplexml_load_file(...)) {
  //Fichier non vide
} else {
  //Fichier vide
}

Posté : 16 juin 2006, 11:03
par Mouet
c'est dommage de faire le chargement 2 fois, non ?

De plus, c'est pas simplexml_load_file() qui pose problème ?

Sinon, on peut faire
if ($xml = simplexml_load_file(...)) {
  //Fichier non vide
} else {
  //Fichier vide
}
Le simplexml_load_file retourne false si jamais il y a une erreur, ca peut donc être une alternative non?

Posté : 16 juin 2006, 11:10
par zeus
justement, pourquoi ne pas tester le retour directement plutot que de tester le retour seul puis charger ensuite
if ($xml = simplexml_load_file(...)) { 
met le retour de simple_xml_load() dans $xml et si ce retour == false, on passe dans le else

Posté : 16 juin 2006, 11:13
par Mouet
Ha oui, j'avais pas compris :oops: ! Merci pour l'explication :D