Foros del Web » Programando para Internet » PHP »

PHP OO Serializar datos obtenidos desde SOAP

Estas en el tema de Serializar datos obtenidos desde SOAP en el foro de PHP en Foros del Web. Buenas tardes, estoy intentando leer unos datos obtenidos a través de un web service SOAP, el web service en concreto sería: http://ovc.catastro.meh.es/ovcservweb/OVCSWLocalizacionRC/OVCCallejero.asmx?op=ConsultaProvincia He conseguido comunicar ...
  #1 (permalink)  
Antiguo 11/05/2017, 11:17
 
Fecha de Ingreso: mayo-2013
Mensajes: 22
Antigüedad: 11 años, 6 meses
Puntos: 0
Serializar datos obtenidos desde SOAP

Buenas tardes,

estoy intentando leer unos datos obtenidos a través de un web service SOAP, el web service en concreto sería:

http://ovc.catastro.meh.es/ovcservweb/OVCSWLocalizacionRC/OVCCallejero.asmx?op=ConsultaProvincia

He conseguido comunicar con el servidor y recibir la respuesta, pero estoy teniendo problemas para serializar la respuesta a objetos.

El código hasta el momento es el siguiente:
Código PHP:
Ver original
  1. $url = "http://ovc.catastro.meh.es/ovcservweb/OVCSWLocalizacionRC/OVCCallejero.asmx?WSDL";
  2.  
  3.             $cliente = new SoapClient($url, array("trace" => 1, "exception" => 0, 'encoding'=> 'UTF-8'));
  4.            
  5.            
  6.             $respuesta = $cliente->ObtenerProvincias();
  7.             var_dump($respuesta);echo "<h2>Funciones del servicio</h2>";
  8.             foreach ($funciones as $funcion) {
  9.                     echo $funcion . "<br />";
  10.             }
  11.  
  12.             //obtener los tipos de datos involucrados
  13.             echo "<h2>Tipos en el servicio</h2>";
  14.             $tipos = $cliente->__getTypes();
  15.  
  16.             foreach ($tipos as $tipo) {
  17.                     echo $tipo . "<br />";
  18.             }

La salida obtenida es la siguiente:

F:\PC-1\xamp\htdocs\catastro\index.php:71:
object(stdClass)[2]
public 'any' => string '<consulta_provinciero xmlns="http://www.catastro.meh.es/"><control><cuprov>48</cuprov></control><provinciero><prov><cpine>15</cpine><np>A CORUÑA</np></prov><prov><cpine>03</cpine><np>ALACANT</np></prov><prov><cpine>02</cpine><np>ALBACETE</np></prov><prov><cpine>04</cpine><np>ALMERIA</np></prov><prov><cpine>33</cpine><np>ASTURIAS</np></prov><prov><cpine>05</cpine><np>AVILA</np></prov><prov><cpine>06</cpine><np>BADAJOZ</np></prov><prov><cpine>08</cpine><np>BARCELONA</np></prov><prov><cpine>09</cpine><np>BURG'... (length=2371)

Funciones del servicio

Consulta_DNP Consulta_DNPRC(string $Provincia, string $Municipio, string $RC)
Provincias ObtenerProvincias()
Municipios ObtenerMunicipios(string $Provincia, string $Municipio)
Callejero ObtenerCallejero(string $Provincia, string $Municipio, string $TipoVia, string $NombreVia)
Callejero ObtenerNumerero(string $Provincia, string $Municipio, string $TipoVia, string $NomVia, string $Numero)
Consulta_DNP Consulta_DNPLOC(string $Provincia, string $Municipio, string $Sigla, string $Calle, string $Numero, string $Bloque, string $Escalera, string $Planta, string $Puerta)
Consulta_DNPPP Consulta_DNPPP(string $Provincia, string $Municipio, string $Poligono, string $Parcela)
Tipos en el servicio

struct Consulta_DNP { any; }
struct Provincias { any; }
struct Municipios { any; }
struct Callejero { any; }
struct Consulta_DNPPP { any; }

Alguien me puede aconsejar en el proceso para serializar la respuesta y convertirlo a objetos? Gracias de antemano.
  #2 (permalink)  
Antiguo 12/05/2017, 13:50
 
Fecha de Ingreso: agosto-2011
Mensajes: 87
Antigüedad: 13 años, 3 meses
Puntos: 3
Respuesta: Serializar datos obtenidos desde SOAP

compa te está enviando un xml...

y esta página SOAP te indica el formato de lo que significa cada etiqueta

esta funcion te tratará un cadena XML bien Fomada como un objeto simplexml_load_string

creo que es la que te servira

Etiquetas: soap
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:05.