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