IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XML/XSL et SOAP Discussion :

Comment détecter un XML mal constitué ?


Sujet :

XML/XSL et SOAP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 7
    Par défaut Comment détecter un XML mal constitué ?
    Bonjour,

    Chaque jour je récupère via le code suivant en php5 auprès d'un serveur externe des flux XML pour alimenter mon site.
    Mon fichier php de traitement de ces flux est codé ainsi :

    $url = 'adresse serveur fournissant le flux XML';
    $rss = file_get_contents($url);
    $xml = new SimpleXMLElement($rss);
    puis code php pour récupérer les éléments du XML pour les afficher.

    Or il arrive assez régulièrement que sur un des flux que je récupère celui-ci soit mal configuré : absence d'élément(s), ...

    Bien évidemment lorsque un de ces flux est mal configuré en lieu et place de l'élément que je veux faire figurer sur mon site apparaît un message d'erreur !

    Auriez-vous un conseil à me donner pour détecter que le flux XML présente un défaut ?

    A noter que les flux que je récupère ont toujours la même configuration et sont très simples puisque sans attribut.

    Merci d'avance pour vos conseils.

  2. #2
    Membre émérite
    Profil pro
    Responsable Dev
    Inscrit en
    Décembre 2003
    Messages
    788
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable Dev

    Informations forums :
    Inscription : Décembre 2003
    Messages : 788
    Par défaut
    connais tu la dtd de ton message? si oui il est possible de vérifier ton fichier xml par cette dtd (cela va vérifier le format et la validité de ton fichier)

  3. #3
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Si le document XML est mal formé, les fonctions simplexml_load_* et le constructeur doivent renvoyer FALSE. Les plus minimes (liées aux entités par exemple), lèveraient, d'après la documentation, des exceptions ou erreurs (dans ce deuxième cas à gérer via l'extension libxml).

    Enfin, s'il s'agit de valider le document à l'aide d'une DTD c'est possible : [SimpleXML] Question sur la gestion du dtd.

    Par contre, pourquoi utilisez-vous file_get_contents avant au lieu de l'URL directement ($xml = new SimpleXMLElement($url, 0, TRUE)) ?

Discussions similaires

  1. [XML] Comment détecter un noeud vide ?
    Par lnplnp dans le forum Modules
    Réponses: 1
    Dernier message: 31/03/2008, 17h47
  2. Réponses: 3
    Dernier message: 27/01/2004, 16h15
  3. Comment détecter un changement du réglage de voume sonore ?
    Par mjlub dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 09/01/2004, 17h43
  4. Comment détecter la frappe d'une touche ?
    Par Bubonik software dans le forum C
    Réponses: 17
    Dernier message: 11/12/2003, 21h52
  5. Réponses: 9
    Dernier message: 01/10/2003, 18h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo