Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > XML > SimpleXML
SimpleXML Forum d'entraide pour l'extension SimpleXML, qui permet de manipuler des documents XML en PHP (approche DOM).
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/05/2007, 18h31   #1
Invité de passage
 
Inscription : avril 2006
Messages : 24
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 24
Points : 4
Points : 4
Par défaut [SimpleXML] Supprimer les messages d'erreur de SimpleXMLElement

Bonjour à tous,

Je viens de réaliser une fonction avec SimpleXMLElement dont je suis très satisfait. Quel bonheur et quelle simplicité !

Voici ma question. Je souhaiterais simplement que ma fonction ne renvoie pas de message d'erreur si jamais le flux contient une erreur sachant que ma fonction est déjà prévue pour retourner True; ou False; en fonction des problèmes rencontrés.

J'utilise donc :
Code :
$xml = new SimpleXMLElement($data);
Le genre d'erreur que je ne voudrais pas voir sur mon écran:

Citation:
Warning: SimpleXMLElement::__construct() [function.SimpleXMLElement---construct]: Entity: line 59: parser error : Input is not proper UTF-8, indicate encoding !
Merci d'avance à tous et désolé pour cette question mais si tous les flux xml respectaient parfaitement le standard uft-8 ça se saurait
cybertj est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2007, 18h41   #2
Invité de passage
 
Inscription : avril 2006
Messages : 24
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 24
Points : 4
Points : 4
je viens de trouver une solution mais elle ne rédoud pas complètement mon problème...

La fonction php corrige le problème de l'affichage de l'erreur mais la fonction php s'arrête net ! Il n'a pas moyen de renvoyer sur un autre script qui va ne serait ce qu'envoyer une alerte en disant que le flux en question a un problème et ne respecte pas uft-8. Pour info cette fonction que je vais utiliser avec simplexml est lancée automatiquement par un cron.

Y a t'il un moyen de tester l'intégrité du flux avant d'attaquer le parsing pour éviter ce genre de situation ? Je parle du srcipt qui s'arrêtre en plein milieu ?
cybertj est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/05/2007, 21h42   #3
Membre Expert
 
Avatar de eric.pommereau
 
Homme ERIC POMMEREAU
Ingénieur intégration
Inscription : décembre 2004
Messages : 683
Détails du profil
Informations personnelles :
Nom : Homme ERIC POMMEREAU
Âge : 38
Localisation : France

Informations professionnelles :
Activité : Ingénieur intégration
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : décembre 2004
Messages : 683
Points : 1 294
Points : 1 294
Bonjour,

Tu peux t'en sortir en gérant les exceptions dans ton script (en plus du error_reporting=0).


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
	error_reporting(0);
 
	try {
		$xml = new SimpleXMLElement('<foo name="one" game="lonely">&</foo>');	
		echo "Chargement de mon élément OK...<br />";
	}
	catch (Exception $ex) {
		echo $ex->getMessage() . '<br />';
	}
 
	echo "C'est bien les exceptions !!";
?>
Affiche en cas d'erreur:

Code :
1
2
String could not be parsed as XML
C'est bien les exceptions !!
Voilà...

@+
eric.pommereau est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h37.


 
 
 
 
Partenaires

Hébergement Web