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 :

[Web Service] Parsing réponse SOAP


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Futur Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 14
    Points : 8
    Points
    8
    Par défaut [Web Service] Parsing réponse SOAP
    Bonjour ;

    J'envoi une requête SOAP et je reçois une réponse SOAP
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <soap:Body>
    <VerifLoginResponse xmlns="http://tempuri.org/">
    <VerifLoginResult>
    <NumCarte>53551</NumCarte>
    <AQualifier>Oui</AQualifier>
    <Statut>OK</Statut>
    </VerifLoginResult>
    </VerifLoginResponse>
    </soap:Body>
    </soap:Envelope>
    le probleme c'est que j'arrive pas a parser cette réponse pour obtenir par exemple l'attribut NumCarte ou AQualifier

    j'utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $rs = $client->__getLastResponse();
    pour obetenir la réponse

  2. #2
    Membre chevronné Avatar de nosferapti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 157
    Points : 1 895
    Points
    1 895
    Par défaut
    pour analyser de l'XML tu peux utiliser SimpleXML:
    http://php.net/simplexmlelement.construct
    GNAP !

  3. #3
    Futur Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 14
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par nosferapti Voir le message
    pour analyser de l'XML tu peux utiliser SimpleXML:
    http://php.net/simplexmlelement.construct


    Merci mais ca marche pas j'ai déjà essayé il parait que les réponses soap ne peuvent être parsé avc SIMPLE_XML

  4. #4
    Membre éclairé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    772
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2004
    Messages : 772
    Points : 872
    Points
    872
    Par défaut
    Tu utilises PHP Soap ?

    Peux-tu nous montrer un peu plus de code autour de $client... ?
    • Mon blog PHP : http://blog.alterphp.com
    • "Peace cannot be kept by force, it can only be achieved by Understanding" -- Albert Einstein

  5. #5
    Futur Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 14
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par pc.bertineau Voir le message
    Tu utilises PHP Soap ?

    Peux-tu nous montrer un peu plus de code autour de $client... ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ini_set("soap.wsdl_cache_enabled","0");
    ini_set('default_socket_timeout', 600); 
    $client = new SoapClient("https://www.monexemple.com/Acces.asmx?WSDL", array("trace"=> 1, "exceptions" => 0));
    oui j'utilise SoapClient

  6. #6
    Membre éclairé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    772
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2004
    Messages : 772
    Points : 872
    Points
    872
    Par défaut
    Tu peux montrer tout le code autour avec $client ?

    Un truc qui rassemble ton premier post et ce précédent ?
    • Mon blog PHP : http://blog.alterphp.com
    • "Peace cannot be kept by force, it can only be achieved by Understanding" -- Albert Einstein

  7. #7
    Futur Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 14
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par pc.bertineau Voir le message
    Tu peux montrer tout le code autour avec $client ?

    Un truc qui rassemble ton premier post et ce précédent ?


    Oui biensur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ini_set("soap.wsdl_cache_enabled","0");
    ini_set('default_socket_timeout', 600); 
    $client = new SoapClient("https://www.monexemple.com/acces.asmx?WSDL", array("trace"=> 1, "exceptions" => 0));
    $num=$_GET['num'];
    $carte= $_GET['carte'];
    $params = array();
    $params["num"] = $num;
    $params["carte"] = $carte;
    $result = $client->VerifLogin($params);
    $rs = $client->__getLastResponse();

  8. #8
    Membre éclairé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    772
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2004
    Messages : 772
    Points : 872
    Points
    872
    Par défaut
    Je penses que ce que tu cherches est déjà dans $result, pas besoin de parser la réponse xml brute !

    A la fin, ajoute :
    Normalement $result->NumCarte et $result->AQualifier sont des membres de l'objet reponse...
    • Mon blog PHP : http://blog.alterphp.com
    • "Peace cannot be kept by force, it can only be achieved by Understanding" -- Albert Einstein

  9. #9
    Futur Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 14
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par pc.bertineau Voir le message
    Je penses que ce que tu cherches est déjà dans $result, pas besoin de parser la réponse xml brute !

    A la fin, ajoute :
    Normalement $result->NumCarte et $result->AQualifier sont des membres de l'objet reponse...
    non ca marche pas puisque VerifLogin et une requete la réponse est dans VerifLoginResponse

  10. #10
    Membre éclairé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    772
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2004
    Messages : 772
    Points : 872
    Points
    872
    Par défaut
    Et ça affiche quoi ce que je t'ai fait ajouter ?
    • Mon blog PHP : http://blog.alterphp.com
    • "Peace cannot be kept by force, it can only be achieved by Understanding" -- Albert Einstein

  11. #11
    Futur Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 14
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par pc.bertineau Voir le message
    Et ça affiche quoi ce que je t'ai fait ajouter ?
    var_dump($result) m'affiche
    object(stdClass)#2 (1) { ["VerifLoginResult"]=> object(stdClass)#3 (3) { ["NumCarte"]=> string(6) "532101" ["AQualifier"]=> string(3) "Oui" ["Statut"]=> string(2) "OK" } }

    et echo $result->NumCarte n'affiche rien du tout

  12. #12
    Membre éclairé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    772
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2004
    Messages : 772
    Points : 872
    Points
    872
    Par défaut
    $result->VerifLoginResult->NumCarte et $result->VerifLoginResult->AQualifier ?

    sinon $result['VerifLoginResult']['NumCarte'] et $result['VerifLoginResult']['AQualifier'] .
    • Mon blog PHP : http://blog.alterphp.com
    • "Peace cannot be kept by force, it can only be achieved by Understanding" -- Albert Einstein

  13. #13
    Futur Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 14
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par pc.bertineau Voir le message
    $result->VerifLoginResult->NumCarte et $result->VerifLoginResult->AQualifier ?

    sinon $result['VerifLoginResult']['NumCarte'] et $result['VerifLoginResult']['AQualifier'] .

    merci bkp ca marche

  14. #14
    Membre éclairé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    772
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2004
    Messages : 772
    Points : 872
    Points
    872
    Par défaut
    Clique sur le bouton Résolu alors !
    • Mon blog PHP : http://blog.alterphp.com
    • "Peace cannot be kept by force, it can only be achieved by Understanding" -- Albert Einstein

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 05/11/2016, 14h46
  2. Réponses: 1
    Dernier message: 27/05/2011, 21h22
  3. Web Services avec réponse multiple
    Par mosit dans le forum Langage
    Réponses: 1
    Dernier message: 27/08/2009, 16h50
  4. différence entre Web service / SOA / EAI / SOAP
    Par storm_2000 dans le forum Services Web
    Réponses: 0
    Dernier message: 26/08/2009, 18h27
  5. Réponses: 5
    Dernier message: 15/04/2008, 15h52

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