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 :

Parse SimpleXMLElement Object


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2014
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Janvier 2014
    Messages : 180
    Par défaut Parse SimpleXMLElement Object
    Bonjour,

    je rencontre un problème pour parser une réponse Soap

    voilà ce que je reçois :
    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
    <?xml version="1.0" encoding="UTF-8"?>
    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    	<soap:Header>
    		<t:trackingHeader xmlns:t="http://www.site.com/iosw/v1" 
    							xmlns:date="http://exslt.org/dates-and-times" 
    							xmlns:str="http://exslt.org/strings" 
    							xmlns:regExp="http://exslt.org/regular-expressions"
    		>
    			<t:requestId>9216cdc0-0029-4365-a59f-e5f71dfa8143</t:requestId>
    			<t:timestamp>2019-02-13T15:27:03+01:00</t:timestamp>
    		</t:trackingHeader>
    	</soap:Header>
    	<soap:Body>
    		<ns2:ZetrActivityListResponse xmlns:ns2="urn:sap-com:document:sap:soap:functions:mc-style">
    			<Folders/>
    			<Messages>
    				<item>
    					<ReturnNum>005</ReturnNum>
    					<ReturnText>Les valeurs de filtres saisies n’ont permis de sélectionner aucune donnée</ReturnText>
    				</item>
    			</Messages>
    			<ReturnCode>W</ReturnCode>
    		</ns2:ZetrActivityListResponse>
    	</soap:Body>
    </soap:Envelope>
    je cherche à récupérer la valeur de ReturnNum donc j'ai fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $xml = new \SimpleXMLElement($client->__getLastResponse());
     
     
    				$xml->registerXPathNamespace('soap', 'http://schemas.xmlsoap.org/soap/envelope/');
    				$xml->registerXPathNamespace('ns2', 'urn:sap-com:document:sap:soap:functions:mc-style');
    				$xml->registerXPathNamespace('t', 'http://www.francetelecom.com/iosw/v1');
    				$code_retour = $xml->xpath('//soap:Envelope/soap:Body/ns2:ZetrActivityListResponse/Messages/item');
    				$folders = $xml->xpath('//soap:Envelope/soap:Body/ns2:ZetrActivityListResponse/Folders/item');
     
    				var_dump($code_retour[0]->ReturnNum);
    seulement le var_dump me donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    object(SimpleXMLElement)[43]
      public 0 => string '005' (length=3)
    Pouvez-vous m'aider svp ?

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Par défaut
    C'est correct non? La valeur de ReturnNum est 005.

    À moins que tu ne veuilles récupérer la valeur, et pas l'object SimpleXMLElement?

    SimpleXMLElement possède la méthode magique __toString, tu peux donc faire ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    //affichage direct
    echo $code_retour[0]->ReturnNum;
     
    //stockage dans une variable:
    $returnNum = (string) $code_retour[0]->ReturnNum;

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2014
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Janvier 2014
    Messages : 180
    Par défaut
    Bonjour,

    Merci pour votre réponse mais je me suis fais avoir comme un débutant.... Je sais pas pourquoi je voulais afficher la valeur avec un var_dump au lieu d'un simple echo...... Enfin après tout c'est comme ça que l'on apprend

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

Discussions similaires

  1. Problème avec SimpleXMLElement Object
    Par stitox dans le forum Langage
    Réponses: 1
    Dernier message: 25/02/2012, 21h28
  2. [Smarty] Array et SimpleXMLElement Object accès contenu
    Par Invité(e) dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 23/03/2011, 13h26
  3. [DDL] "object <table> is in use"
    Par TMuet dans le forum SQL
    Réponses: 4
    Dernier message: 26/01/2004, 10h18
  4. Réponses: 8
    Dernier message: 21/11/2003, 18h38
  5. Comment inserer des donnee de type Large Object !!
    Par josoft dans le forum Requêtes
    Réponses: 4
    Dernier message: 20/07/2003, 11h21

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