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] Récupérer la valeur d'un noeud XML


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 488
    Points : 134
    Points
    134
    Par défaut [DOM] Récupérer la valeur d'un noeud XML
    Bonjour,

    J'utilise la fonction simplexml_load_file() pour récupérer des des données d'un fichier XML que voici:

    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
    21
    22
    23
    24
    25
    26
    27
    - <job>
     
      <jobid>73</jobid>
     
      <reference>20100729161718</reference>
     
      <client>Microsoft</client>
     
    - <agence>
     
      <nom>MONTBELIARD-BELFORT</nom>
     
      <adresse>7, rue des roses</adresse>
     
      <cp>25200</cp>
     
      <ville>MONTBELIARD</ville>
     
      <regionLibelle>Franche-Comté</regionLibelle>
     
      <tel>03 81 00 00 00</tel>
     
      <fax>03 81 00 00 00</fax>
     
      <email>test@test.fr</email>
     
      </agence>
    J'aimerai récupérer la valeur du noeud email, mais je n'y arrive pas.

    Voilà comment je procède:

    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
     
    $xmlTopNodesName = 'job';
    $selectboxes = array ('Domaine','Poste');
    $selectboxesAgences = array ('fax','email');
    $xml = simplexml_load_file($url);
     
    foreach ($xml as $key => $value) {
     
      if ($key==$xmlTopNodesName) $annonces[] = $value;
     
     
    }
    if (!count($annonces))  die();
    foreach ($annonces as $annonce) {
     
      $mySql = "SELECT * FROM `agences` WHERE `agence_mail ` ='".getValueFromLabelAgence($annonce,'email')."'";
      $myQuery = mysql_query($mySql);
      echo $mySql;
      print_r($myQuery);
    Et voilà la fonction qui pose problème et ne me retourne rien:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    function getValueFromLabelAgence($object,$label) {
     
      foreach ($object->agence as $agence) {
     
        if ($agence->email == $label) {
     
          if (in_array($label,$selectboxesAgences))  return formatSelect($agence->email);
          return mysql_real_escape_string($agence->email);
        }
      }
    }
    Merci d'avance pour votre aide!

  2. #2
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    pourquoi mysql_real_escape_string() dans le corps de la fonction? pourquoi pas au niveau de la génération sql?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $agence->email == $label
    à mon avis l'erreur viens de là.

    ton accesseur devrait faire des trucs comme des

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    if ( !empty($label)  and property_exists( $object, $label ) )
    {
    return $object -> $label;
    }
    else
    {
    //throw exception("Propriete non definie");
    // oubien
    return null;
    }

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 488
    Points : 134
    Points
    134
    Par défaut
    J'ai juste fait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    function getValueFromLabelAgence($object,$label) {
      global $selectboxesAgences;
     
     
      foreach ($object->agence as $agence) {
     
          if (in_array($label,$selectboxesAgences))  return ($agence->email);
          return mysql_real_escape_string($agence->email);
     
      }
    }
    et ça marche.

    Merci pour votre aide!

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

Discussions similaires

  1. [DOM] Modifier la valeur d'un noeud dans un fichier XML
    Par rob2-9 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 25/08/2008, 20h31
  2. Récupérer la valeur d'un noeud XML
    Par Tchupacabra dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 05/06/2008, 10h23
  3. [DOM] Récupérer le nom du premier noeud d'un fichier XML en PHP
    Par ePsymon dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 08/02/2008, 09h17
  4. [DOM XML] Récupérer la valeur d'un attribut xml
    Par fast462 dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 04/06/2007, 10h16
  5. Récupérer les valeurs d'un noeud dans un fichier XML
    Par yosthegost dans le forum Delphi
    Réponses: 1
    Dernier message: 30/05/2006, 17h38

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