Validation load xml en php

Bonjour,

j'aimerais pouvoir valider si un xml a été correctement "loader" en php afin d'afficher un message d'erreur plus propre que ceci :

//---------------------------------------------
Warning: DOMDocument::load() [function.DOMDocument-load]: php_network_getaddresses: getaddrinfo failed: Hôte inconnu. in C:\0461454\FIN_27fev\index.php on line 221

Warning: DOMDocument::load(http://prof.tim.cstj.net/aboudrea/xml/3nouvelles.php) [function.DOMDocument-load]: failed to open stream: No such file or directory in C:\0461454\FIN_27fev\index.php on line 221

Warning: DOMDocument::load() [function.DOMDocument-load]: I/O warning : failed to load external entity "http://prof.tim.cstj.net/aboudrea/xml/3nouvelles.php" in C:\0461454\FIN_27fev\index.php on line 221
//---------------------------------------------

jai lu que DOMDocument->load devrait retourner "false" en cas d'echec mais je n'arrive pas à programmer un IF() qui afficherait un message perso du genre: "Désolé le contenu de la page n'as pus etre téléchargé..."

Merci d'avance pour vos conseils!!!
Configuration: Windows XP
Internet Explorer 6.0 et firefox

2 réponses

  1. En faisant ceci :

    if ( !$test = @DOMDocument->load('fichier.xml') )
    {
    echo 'Désolé le contenu de la page n'as pus etre téléchargé...';
    }

    Le @ sert à ne pas afficher les erreurs PHP de la fonction. Faudra tester il y a surement une erreur dans ce que je te donne.
    2
    1. Salut, merci du tuyau Jérome,

      Sujet assez ancien, certes, mais au final ça peut toujours dépanner les âmes égarées, de passage ! :)
      Bon, juste pour dire qu'avec du PHP5, la syntaxe exacte qui a fonctionné pour moi est :

      $fileName="book.xml";
      function fileToObject($fileName) {
      //******************************
      $dom = @DOMDocument::load($fileName);
      if (!$dom ) { return false; }
      //******************************
      if (!@$dom->validate()) { return false; }
      $object = new stdClass();
      $object->source = $fileName;
      $root = $dom->documentElement;
      $object->root = new stdClass();
      getElement($root, $object->root);
      return $object;
      }
      0