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

Langage PHP Discussion :

probléme SOAP de recup document xml et webservices


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Autoentrepreuneur
    Inscrit en
    Mai 2012
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Autoentrepreuneur

    Informations forums :
    Inscription : Mai 2012
    Messages : 50
    Points : 37
    Points
    37
    Par défaut probléme SOAP de recup document xml et webservices
    Bonjour voile je recupere des données d'un fichier xml obtenu via un webservice grace a ce script:
    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
    <?php
     
    $wsdl = "url du webservice";
    $client = new SoapClient($wsdl);
    //affiche les données du fichier wsdl
    $params= array(
     
    );
    $function_name="CmdeExportCarte";
    $function = $client->__call($function_name,$params);
    echo "<pre> <hr/>" ;
    print_r($function);
    echo "<hr/>";
    echo "</pre>" ;
     
     
     
    ?>
    voila donc ce code me permet de recuperer les données fournis grace a un webservice d'un logiciel orchestra... seulement j'aimerai juste recuperer les nom des categories hors des que je met un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print_r($function['nom']);
    il me retourne l'erreur :Cannot use object of type stdClass as array... c'est a ne plus rien y comprendre donc si une bonne ame saurai m'aider ca serai cool!!! merci d'avance!

  2. #2
    Membre averti

    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 205
    Points : 409
    Points
    409
    Billets dans le blog
    1
    Par défaut
    La fonction __call de la bibliothèque SoapClient est obsolète, je te conseille de passer plutôt par __soapCall().
    http://fr2.php.net/manual/fr/soapclient.call.php

    Cannot use object of type stdClass as array
    Cette phrase signifie que tu essaies d'utiliser un objet comme un tableau (donc faire $element['nom'] au lieu de $element->nom).

    Un var_dump te donnera le type de $function, à priori un objet.
    Si c'est bien le cas, il te suffit de faire $function->nom pour récupérer la valeur que tu recherches

    Ps : nommer une variable $function est...peu explicite, je te conseille de la renommer pour lui donner un nom qui correspond mieux à ce qu'elle représente

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Autoentrepreuneur
    Inscrit en
    Mai 2012
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Autoentrepreuneur

    Informations forums :
    Inscription : Mai 2012
    Messages : 50
    Points : 37
    Points
    37
    Par défaut
    salut k'amm,

    voila la reponse d'un var_dump

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    object(stdClass)[2]
      public 'CmdeExportCarteResult' => string '<?xml version="1.0" encoding="UTF-8"?>
    <data>
    <carte>
    <categ id="4" nom="PLAT" image="PLAT">
    <sscateg id="2" nom="RESTAU">
    <nom>RESTAU</nom>
    <produit nom="OResto Photo" id="272" photo_available="0" prix="94.72">
    <nom>OResto Photo</nom>
    <prix>94.72</prix>
    <description>Pour le restaurateur equipé de Bar Restau v Pro. Utilitaire permettant la prise de photos des plats avec un iPhone et integration dans la base article.</description>
    </produit>
    <produit nom="Upgrade HB vs Cloud" id="280" photo_avail'... (length=29490)
    donc si j'ai bien compris, je recupere un objet de type string?

    et meme en essayant ce code,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $function_name="CmdeExportCarte";
    $function = $client->__soapCall($function_name, array("produit","nom"));
    var_dump($function);
    echo "<pre> <hr/>" ;
    print_r($function->produit);
    echo "<hr/>";
    echo "</pre>" ;
    ca me met une erreur : Undefined property: stdClass::$produit

  4. #4
    Membre averti

    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 205
    Points : 409
    Points
    409
    Billets dans le blog
    1
    Par défaut
    En gros tu récupères un objet : object(stdClass)Cet objet a plusieurs propriétés, dont une variable public, nommée CmdeExportCarteResult qui est une chaîne de caractère (un string) et qui contient ton XML.

    Tu dois donc agir sur $function->CmdeExportCarteResult, par exemple avec un simplexml_load_string qui te permettra ensuite te récupérer les différentes valeurs qui t'intéressent !

    Ton var_dump est tronqué par contre (... (length=29490)), il a donc peut être d'autres propriétés !

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Autoentrepreuneur
    Inscrit en
    Mai 2012
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Autoentrepreuneur

    Informations forums :
    Inscription : Mai 2012
    Messages : 50
    Points : 37
    Points
    37
    Par défaut
    Merci de ta reponse k'amm mais ca ne marche pas..... est ce que tu saurai comment utiliser l'objet public CmdeExportCarteResult???? dis moi si je dis n'importe quoi mais c'est bien dans cette objet que sont stocké toutes les infos xml que je veut! c'est bien ca?

Discussions similaires

  1. Problème de parsing de document XML
    Par Chorfa007 dans le forum XML/XSL et SOAP
    Réponses: 6
    Dernier message: 30/08/2011, 17h11
  2. VBA : problème parsing document XML
    Par duffman dans le forum Général VBA
    Réponses: 1
    Dernier message: 15/04/2009, 15h37
  3. [XSLT]Problème de transformation d'un document XML.
    Par JM_Cholet dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 16/01/2007, 13h29
  4. [JAVA] Problème supression noeud d'un document XML
    Par vero59 dans le forum XML/XSL et SOAP
    Réponses: 10
    Dernier message: 16/08/2005, 16h12

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