Foros del Web » Programando para Internet » PHP »

PHP OO Duda con SoapClient

Estas en el tema de Duda con SoapClient en el foro de PHP en Foros del Web. Hola a todos, A ver si alguno me puede resolver este misterio. Aqui tengo la siquiente peticion: Código: $objClient = new SoapClient($destino, array('trace' => true,'exceptions' ...
  #1 (permalink)  
Antiguo 18/07/2011, 09:01
 
Fecha de Ingreso: julio-2011
Mensajes: 1
Antigüedad: 12 años, 8 meses
Puntos: 0
Duda con SoapClient

Hola a todos,

A ver si alguno me puede resolver este misterio.

Aqui tengo la siquiente peticion:

Código:
$objClient = new SoapClient($destino, array('trace' => true,'exceptions' => 0, 'encoding' => 'UTF-8'));
$xml = '<cl:getClientList xmlns:hb="somexmlns">
<ClientListRequest sessionId="3335" xmlns="http://www.algunapagina.com/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.algunapagina.com/schemas/2005/06/messages ClientListRequest.xsd">
  <Language>ENG</Language>
  <DateFrom date="'.$datein.'"/>
  <DateTo date="'.$dateout.'"/>
  <Office code="'.$office.'" type="SIMPLE"/>
  </ClientListRequest>
</cl:getClientList>';

$soapvar = new SoapVar($xml, XSD_ANYXML);
$objResponse = $objClient->__soapCall("getClientList", array($soapvar)); 
$data= $objClient->__getLastResponse();
Tras asegurarme de que __getLastResponse() devuelve un string (echo gettype($data)) llamo a la siguiente funcion loadXML:

Código:
Tras asegurarme de que __getLastResponse() devuelve un string (echo gettype($data)) llamo a la siguiente funcion loadXML:
Código:
function loadXML($data) {
  $xml = @simplexml_load_string($data);
  if (!is_object($xml))
    throw new Exception('Error en la lectura del XML',1001);
  return $xml;
}
Si ahora hago un print_r de XML->children() no me imprime nada.

Código:
echo "<pre>";
// Pintamos los hijos
print_r($XML->children());
echo "{" . $XML->Client->Name. "}" ;
echo "</pre>";

En cambio si directamente asigno el resultado a la variable $data(copy/paste), es decir no uso $objClient->__getLastResponse(), sino que monto una respuesta completa(la misma que recibo de getLastResponse), me monta completamente el arbol de nodos y no entiendo el porque de una manera si y de la otra no cuando de las dos formas son String, y de una manera funciona y de la otra no(solo me imprime {}).

Espero la duda este correctamente explicada.

Saludos y gracias de antemano a quien me pueda ayudar.

Etiquetas: variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:53.