1. #1
    Membre régulier
    Profil pro
    Inscrit en
    juin 2004
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2004
    Messages : 148
    Points : 76
    Points
    76

    Par défaut xpath ne fournit aucun résultat?

    Bonjour,

    J'ai essaye de faire fonctionner le code php suivant.
    C'est un exemple dont je me suis inspiré de la page suivante
    http://stackoverflow.com/questions/4...parse-soap-xml

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
     
    	$your_xml_response = file_get_contents('./test.xml');
    	$clean_xml = str_ireplace(['SOAP-ENV:', 'SOAP:'], '', $your_xml_response);
    	$xml = simplexml_load_string($clean_xml);
    	//print_r($xml);
     
    	$xml->registerXPathNamespace('soap', 'http://schemas.xmlsoap.org/soap/envelope/');
    	foreach ($xml->xpath('//payment') as $item)
    	{
    		print_r($item);
    	}
    ?>
    et voici le contenue du fichier test.xml
    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
     
    <?xml version="1.0" encoding="utf-8"?>
    <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
      <soap:Body>
        <PaymentNotification xmlns="http://apilistener.envoyservices.com">
          <payment>
            <uniqueReference>ESDEUR11039872</uniqueReference>      
            <epacsReference>74348dc0-cbf0-df11-b725-001ec9e61285</epacsReference>
            <postingDate>2010-11-15T15:19:45</postingDate>
            <bankCurrency>EUR</bankCurrency>
            <bankAmount>1.00</bankAmount>
            <appliedCurrency>EUR</appliedCurrency>
            <appliedAmount>1.00</appliedAmount>
            <countryCode>ES</countryCode>
            <bankInformation>Sean Wood</bankInformation>
      <merchantReference>ESDEUR11039872</merchantReference>
       </payment>
        </PaymentNotification>
      </soap:Body>
    </soap:Envelope>
    en appelant le script php je ne reçoit aucune réponse c'est à dire une page vide qui s'affiche.

    Pour information :
    Quand j'active la ligne de code suivante (qui est actuellement désactivé dans le code que j'ai publié plus haut sur cette page)
    je reçoit cette réponse (affichage code source de la page web):
    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
    SimpleXMLElement Object
    (
        [Body] => SimpleXMLElement Object
            (
                [PaymentNotification] => SimpleXMLElement Object
                    (
                        [payment] => SimpleXMLElement Object
                            (
                                [uniqueReference] => ESDEUR11039872
                                [epacsReference] => 74348dc0-cbf0-df11-b725-001ec9e61285
                                [postingDate] => 2010-11-15T15:19:45
                                [bankCurrency] => EUR
                                [bankAmount] => 1.00
                                [appliedCurrency] => EUR
                                [appliedAmount] => 1.00
                                [countryCode] => ES
                                [bankInformation] => Sean Wood
                                [merchantReference] => ESDEUR11039872
                            )
     
                    )
     
            )
     
    )
    Ma question:
    Pourquoi la boucle xpath ne fournit t-elle aucun résultat?

    Merci d'avance pour votre aide.

    Ps.: j'utilise la version php suivante : PHP 5.6.30-0+deb8u1 (cli) (built: Feb 8 2017 08:50:21)

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    septembre 2004
    Messages
    11 112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : septembre 2004
    Messages : 11 112
    Points : 18 800
    Points
    18 800

    Par défaut

    Hello,

    Et ça fait quoi si tu te bases sur la suggestion qui y avait été donnée ici : http://stackoverflow.com/a/4194630 ?

    Note : effacer les namespaces avec str_ireplace(['SOAP-ENV:', 'SOAP:'], '', $your_xml_response) est parfaitement débile.

    Tu fais quoi si ta réponse contient :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <bankInformation>Invest in soap: good and cheap</bankInformation>
    tu modifies les infos bancaires juste parce que tu avais la flemme de gérer ? Le type qui a suggéré ça est une tanche.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    juin 2004
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2004
    Messages : 148
    Points : 76
    Points
    76

    Par défaut Merci pour votre aide

    Bonjour thelvin,

    J'ai pu résoudre mon problème grâce à votre aide.

    J'avais mal renseigne l'url "namespace" > > registerXPathNamespace.

    Dans la réponse soap (en provenance du serveur soap) j'ai pu enfin récupérer la bonne adresse, qu'il me manquait, pour que je puisse récupérer les informations donc j'ai besoin.

    Encore un grand MERCI pour votre aide.

    Ps.: je débute avec SOAP ...

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

Discussions similaires

  1. [DEBUTANT]radio_button fournit aucun résultat
    Par Blaede dans le forum Ruby on Rails
    Réponses: 3
    Dernier message: 26/05/2008, 09h36
  2. Savoir si la requête ne retourne aucun résultat
    Par mickado dans le forum PHP & MySQL
    Réponses: 5
    Dernier message: 06/04/2007, 09h37
  3. CreataTableDef: aucun résultat
    Par pifou25 dans le forum Access
    Réponses: 2
    Dernier message: 20/02/2007, 15h49
  4. Réponses: 20
    Dernier message: 05/06/2006, 16h07
  5. PSQLException "Aucun résultat retourné par la requête&q
    Par BRAUKRIS dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 15/09/2005, 20h55

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