Como acceder a variables SOAP

32 views
Skip to first unread message

mmunozfer

unread,
Apr 12, 2010, 3:28:11 AM4/12/10
to Grupo de programadores PHP de Barcelona

Hola, soy nuevo con soap y tengo un pequeño problema.

Estoy haciendo un servidor para recibir peticiones, y no se acceder a
los parametros "de segundo nivel", es decir:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/
envelope/" xmlns:tns="http://www.huawei.com/schema/syncorder/v1-0/"
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenc11="http://
schemas.xmlsoap.org/soap/encoding/" xmlns:soapenc12="http://www.w3.org/
2003/05/soap-encoding" xmlns:soap11="http://schemas.xmlsoap.org/soap/
envelope/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ><SOAP-
ENV:Body><tns:SyncOrderRelationExt xmlns:tns="http://www.huawei.com/
schema/syncorder/v1-0/"><tns:UserID><tns:ID>89123798</
tns:ID><tns:type>21</tns:type></tns:UserID><tns:SPID>83927483</
tns:SPID><tns:productID>328427</tns:productID><tns:serviceID>3232</
tns:serviceID><tns:serviceList></tns:serviceList><tns:updateType></
tns:updateType><tns:updateTime></tns:updateTime><tns:updateDesc></
tns:updateDesc><tns:effectiveTime></
tns:effectiveTime><tns:expiryTime></
tns:expiryTime><tns:extensionInfo><tns:NamedParame
terList><tns:NamedParameters><tns:ArrayOfNameParam
eter><tns:NamedParameter><tns:key></tns:key><tns:value></tns:value></
tns:NamedParameter></tns:ArrayOfNameParameter></tns:NamedParameters></
tns:NamedParameterList></tns:extensionInfo></
tns:SyncOrderRelationExt></SOAP-ENV:Body></SOAP-ENV:Envelope>

Cuando me envían esto yo accedo a los parámetros así:

$param->productID;
y funciona perfectamente, pero cuando quiero acceder al ID, dentro de
userID no puedo. Yo intento hacer lo siguiente:

$param->userID->ID;
Pero se ve que no se hace así... alguien me puede echar una mano?

Muchas gracias y un saludo a todos

mmunozfer

unread,
Apr 13, 2010, 7:12:30 AM4/13/10
to Grupo de programadores PHP de Barcelona
¿Nadie tiene ni idea de como hacerlo?

Eduard Llach

unread,
Apr 13, 2010, 7:31:43 AM4/13/10
to phpbar...@googlegroups.com
Yo es que nunca he trabajado con SOAP y PHP.

2010/4/13 mmunozfer <mmun...@gmail.com>
--
Has recibido este mensaje porque estás suscrito al grupo "Grupo de programadores PHP de Barcelona" de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a phpbar...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a phpbarcelona...@googlegroups.com
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/phpbarcelona?hl=es.




--
Eduard Llach

Ivan Vergés

unread,
Apr 13, 2010, 7:38:42 AM4/13/10
to phpbar...@googlegroups.com
Porque no das un ejemplo más detallado?
un poco del código que usas para conectar al servidor, como lo haces
etc. Es que así a pelo es un poco difícil ayudarte...

-----Missatge original-----
De: Eduard Llach <eduar...@gmail.com>
Reply-to: phpbar...@googlegroups.com
Per a: phpbar...@googlegroups.com
Assumpte: Re: Como acceder a variables SOAP
Data: Tue, 13 Apr 2010 13:31:43 +0200

Carlos Buenosvinos Zamora

unread,
Apr 13, 2010, 9:10:30 AM4/13/10
to phpbar...@googlegroups.com
Hola,

Primero, te sugiero que cuides un poco la comunicación cuando envíes mails a este grupo. Segundo, SOAP es XML, lo que significa que cualquier Parser XML de PHP te va a servir, mírate DomDocument, Simplexml, etc.

DOM: http://es2.php.net/manual/en/book.dom.php
SimpleXML: http://es2.php.net/manual/en/book.simplexml.php

Saludos
Carlos Buenosvinos Zamora
carlos.bu...@gmail.com
672.24.85.16

url: http://blog.carlosbuenosvinos.com
twitter: buenosvinos
skype: carlos.buenosvinos
gtalk: carlos.bu...@gmail.com

Pau Gay Martín

unread,
Apr 13, 2010, 10:28:28 AM4/13/10
to phpbar...@googlegroups.com
Yo no soy un experto, pero para hacer llamadas SOAP he usado alguna vez "nusoap".

Te dejo un ejemplo a ver si te es útil:

<?php

require('lib/nusoap.php');

$cliente = new nusoap_client('http://xurrency.com/api.wsdl', 'wsdl');
$err = $cliente->getError();

if($err) {
exit();
}

$proxy = $cliente->getProxy();

if(!$cliente->getError()) {

$resultado = $proxy->getName('eur');

$resultado = $proxy->getZone('eur');

$resultado = $proxy->getCurrencies();

$value = 1.0;
$source = 'eur';
$dest = 'gbp';
$resultado = $proxy->getValue($value, $source, $dest);
echo $value . " " . $source . " = " . $resultado . " " . $dest;
}

?>
Saludos!

2010/4/13 Carlos Buenosvinos Zamora <carlos.bu...@gmail.com>



--
Pau Gay
http://paugay.com
Reply all
Reply to author
Forward
0 new messages