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] problème avec XML


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de ia.jenny
    Profil pro
    Inscrit en
    Août 2007
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 152
    Par défaut [DOM] problème avec XML
    Bonjour,
    Je suis novice en php, et je ne comprends pas encore tout.
    Je voudrais afficher "ok, je ne fait plus de bruit" quand $world = "silence"

    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?xml version="1.0" encoding="ISO-8859-1" ?>
    <contacts>
      <contact><In>silence</In><Out>ok, je ne fait plus de bruit</Out></contact>
      <contact><In>écoute</In><Out>je suis toutes ouies</Out></contact>
    </contacts>

    Le programme plante a la linge :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $Out->firstChild->nodeValue . "<br />";
    Donc, que dois je faire pour corriger cette erreur.
    Comment déclaré $Out pour que ça fonctionne en gardant ma fonction openXML ?
    Merci beaucoup.
    @+

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    <?php
    function  openXML($File,$world)
    {
      $dom = new DomDocument;
      $dom->load($File);
      $contact = $dom->getElementsByTagName('contact')->item(0);
      $listeContact = $contact->getElementsByTagName('In');
      foreach($listeContact as $In)
      {
        if($world==$In->firstChild->nodeValue)
     { 
      echo $Out->firstChild->nodeValue . "<br />"; // Bup ICI!!!!
     }
      }
    }
    ?>
     
    <?php
       openXML("toto1.xml","silence");
    ?>

  2. #2
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2007
    Messages : 70
    Par défaut
    ta variable $Out ne correspond a rien du tout
    essaie de debugger ton code en placant un "print_r($In)" dans ta boucle afin de voir ce que ton foreach t'affiche comme valeur

  3. #3
    Membre confirmé Avatar de ia.jenny
    Profil pro
    Inscrit en
    Août 2007
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 152
    Par défaut
    Salut
    Je sais très bien que $Out ne correspond a rien du tout.
    Comment déclaré $Out pour que ça fonctionne en gardant ma fonction openXML ?
    Avec $In, ça fonctionne, mais je n'obtiens pas ce que je veux.
    Merci
    @+

  4. #4
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2007
    Messages : 70
    Par défaut
    Essaie deja de prendre le tag <contact> qui est ton container
    a l'interieur de cet objet qui correspond a contact, tu as 2 valeurs , ton IN et ton OUT
    tu devrais parser ton xml dans un tableau puis analyser ton tableau au lieu d'analyser directement ton xml peut etre ...


    sinon , Personnellemnt j'utilise dans php 5 la fonction simple_xml_load_file qui me retourne un objet xml super bien organisé

    essaie toujours

    bon courage

  5. #5
    Membre confirmé Avatar de ia.jenny
    Profil pro
    Inscrit en
    Août 2007
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 152
    Par défaut
    Merci,
    Je vais essayer avec le « simple_xml_load_file ».
    Par compte, je suis toujours ouvert pour une autre solution.
    Encore merci
    @+

  6. #6
    Membre émérite

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Par défaut t'es pas loin mais...
    ce script fonctionne regarde bien il n'y à pas de grosse différence :
    bon en fait il y avait un gros souci dans ta condition, pense à utiliser
    utf8_decode si tu à mot avec accent, sinon plantage et un soucis avec $listecontact.voila voila


    $fichier=toto.xml;
    $word=silence;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $doc = new DOMDocument;
    $doc->load($fichier);;
    $items = $doc->getElementsByTagName('contact');
     
    $listeContact = $doc->getElementsByTagName('In');
    print_r($listeContact);
    for ($i = 0; $i < $listeContact->length; $i++) {
     
    if(utf8_decode($listeContact->item($i)->nodeValue)==$word){
        echo utf8_decode($items->item($i)->nodeValue ). "\n";
    }
    }

Discussions similaires

  1. Utilisation d'eval avec XML::DOM
    Par Sethenssen dans le forum Modules
    Réponses: 2
    Dernier message: 25/09/2011, 18h16
  2. [DOM][JAVASCRIPT]Utilisation de l'xml avec html
    Par Hello_World dans le forum APIs
    Réponses: 9
    Dernier message: 14/10/2010, 14h37
  3. bizarerie avec XML::DOM::NodeList
    Par psylox dans le forum Modules
    Réponses: 0
    Dernier message: 06/10/2008, 16h44
  4. [DOM] Création d'un noeud xml avec childNode
    Par starr dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 22/03/2007, 11h18
  5. [DOM] Php5 : créer un fichier xml avec Dom
    Par devadh dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 29/01/2007, 14h04

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