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

Bibliothèques et frameworks PHP Discussion :

[DOM] Indiquer l'absence de donnée à analyser


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

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

    Informations forums :
    Inscription : Novembre 2008
    Messages : 23
    Par défaut [DOM] Indiquer l'absence de donnée à analyser
    Bonjour,

    Je souhaiterai afficher un texte par défaut m'indiquant que la donnée que je cherche à parser n'est pas disponible.

    Voici mon bout de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
          <?php
    $dom_object = new DomDocument();
    $dom_object->load("population.xml");
    $xpath = new Domxpath($dom_object);
    $result = $xpath->query("//pop[./preceding-sibling::country/@code ='fr']/.");
    foreach ($result as $exercise) {
        print "<pre>" . $exercise->nodeValue. "</pre>\n";   
    }
    ?>
    Ici je recherche dans population.xml, la donnée du pays "fr"...

    Par exemple, il n'y a pas la population de "us" dans mon xml, je voudrais donc afficher "Non disponible"... Comment est-ce possible? Que rajouter à ce code?

    Merci d'avance,

  2. #2
    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
    Il suffit de regarder la documentation : la méthode query de l'objet DomXPath indique que dans un tel cas de figure elle renvoie un objet DomNodeList (comme en toute circonstance) mais vide :
    Citation Envoyé par http://fr.php.net/manual/fr/domxpath.query.php
    Retourne un DOMNodeList contenant tous les noeuds correspondant à l'expression expression XPath donnée. Toutes les expressions qui ne retournent pas de noeud retourneront un DOMNodeList vide.
    Donc, quelque chose comme ci-dessous, devrait répondre à la question :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if ($result->length > 0) {
        foreach ($result as $exercise) {
            print "<pre>" . $exercise->nodeValue. "</pre>\n";   
        }
    } else {
        echo 'Pas de résultat';
    }

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 23
    Par défaut
    Merci beaucoup, c'est parfait !!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WD14] Message : Absence de données à imprimer
    Par sliminformatique dans le forum WinDev
    Réponses: 14
    Dernier message: 03/05/2010, 22h55
  2. Quelle structure de données ? Analyse des occurrences d'un trigramme
    Par Tidus159 dans le forum Algorithmes et structures de données
    Réponses: 46
    Dernier message: 12/04/2009, 19h35
  3. [DOM] Problème de récupération de données
    Par Lordsephiroth dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 29/05/2008, 16h41
  4. Réponses: 2
    Dernier message: 13/08/2007, 15h25
  5. [2.0] Absence de données
    Par Sadneth dans le forum ASP.NET
    Réponses: 1
    Dernier message: 13/03/2007, 17h29

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