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 :

[SimpleXML] SOAP + données XML


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Décembre 2004
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 19
    Par défaut [SimpleXML] SOAP + données XML
    Bonjour,

    Je dois faire un serveur soap pour un client. Celui-ci m'envoi des messages du type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?xml version="1.0" encoding="UTF-8"?>
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
      <SOAP-ENV:Body>
    <myTestRequest>
        <library name="ma librairie">
            <books>
                <book ref="xy0">Tintin au tibet</book>
                <book ref="xy1">Tintin au congo</book>
                <book ref="xy3">Tintin au forum PHP 2008</book>
            </books>
        </library>    
    </myTestRequest>
    </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
    Le wsdl (généré par eclipse) pour l'instant ressemble à :

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    <?xml version="1.0" encoding="UTF-8"?>
    <wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    	xmlns:tns="http://www.soaptest.com/soapTest/"
    	xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    	xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="soap"
    	targetNamespace="http://www.soaptest.com/soapTest/">
     
        <wsdl:message name="myTestRequest">
    		<wsdl:part name="myTestRequest" type="xsd:anySimpleType" />
    	</wsdl:message>
     
    	<wsdl:message name="myTestResponse">
    		<wsdl:part name="myTestResponse" type="xsd:anySimpleType" />
    	</wsdl:message>
     
    	<wsdl:portType name="soapPortType">
    		<wsdl:operation name="myTest">
    			<wsdl:input message="tns:myTestRequest"></wsdl:input>
    			<wsdl:output message="tns:myTestResponse"></wsdl:output>
    		</wsdl:operation>
    	</wsdl:portType>
     
    	<wsdl:binding name="soapBinding" type="tns:soapPortType">
    		<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
    		<wsdl:operation name="myTest">
    			<soap:operation soapAction="http://www.soaptest.com/soapTest/myTest" />
    			<wsdl:input>
    				<soap:body use="literal" />
    			</wsdl:input>
    			<wsdl:output>
    				<soap:body use="literal" />
    			</wsdl:output>
    		</wsdl:operation>
    	</wsdl:binding>
     
    	<wsdl:service name="SOAPconnector">
    		<wsdl:port binding="tns:soapBinding" name="soapPort">
    			<soap:address
    				location="http://192.168.0.11/soap/serveur.php" />
    		</wsdl:port>
    	</wsdl:service>
    </wsdl:definitions>
    Mon problème vient de ce que je reçois coté serveur en entrée de ma fonction myTest :

    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
    stdClass Object
    (
        [library] => stdClass Object
            (
                [books] => stdClass Object
                    (
                        [book] => Array
                            (
                                [0] => Tintin au tibet
                                [1] => Tintin au congo
                                [2] => Tintin au forum PHP 2008
                            )
     
                    )
     
            )
     
    )
    Déjà c'est pas du xml mais ça c'est pas le plus gros pb, une petite fonction peut rapidement le convertir en XML. Mais les attributs ont tous disparu !

    Comment faire pour récupérer en entrée, soit un objet simpleXML ou DOM, ou bien même le flux XML dans une string mais qu'il soit vraiment complet ?

    nota : le flux xml d'exemple fait dans la réalité 20km de long et peux éventuellement avoir des namespaces un peu partout -_-

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2006
    Messages : 5
    Par défaut
    sur ton serveur

    $contents=file_get_contents("php://input");

    file_put_contents("output_debug",$contents);

  3. #3
    Membre averti
    Inscrit en
    Décembre 2004
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 19
    Par défaut
    Omg c'est si simple

    Merci beaucoup

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

Discussions similaires

  1. [Web Service] SOAP : Violation encoding avec une donnée XML
    Par oxomichael dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 18/03/2009, 11h59
  2. [SimpleXML] recuperer données xml avec simplexml
    Par astrolane dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 29/08/2007, 14h39
  3. [SimpleXML] Récupération données de XML vers une table MySQL
    Par emmma dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 29/06/2007, 18h28
  4. [SimpleXML] Récupération des données XML
    Par squalito dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 30/05/2006, 14h22
  5. problème xsl : inclure une donnée xml dans une balise html
    Par djodjo dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 03/01/2003, 09h24

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