arrays - PHP parse response from web service that contains the xsd too -
i need parse xml using php soapclient. response appears contain xsd too. below example of response get. welcome comments , contributions. thank much.
<xs:schema xmlns="" xmlns:xs="http://www.w3.org/2001/xmlschema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="newdataset"> <xs:element name="newdataset" msdata:isdataset="true" msdata:maindatatable="prv_servicios" msdata:usecurrentlocale="true"> <xs:complextype> <xs:choice minoccurs="0" maxoccurs="unbounded"> <xs:element name="prv_servicios"> <xs:complextype> <xs:sequence> <xs:element name="idprv_servicios" type="xs:int" minoccurs="0"/> <xs:element name="servicios" type="xs:string" minoccurs="0"/> <xs:element name="filler" type="xs:string" minoccurs="0"/> <xs:element name="markupavizo" type="xs:double" minoccurs="0"/> <xs:element name="markuprest" type="xs:double" minoccurs="0"/> <xs:element name="markup" type="xs:double" minoccurs="0"/> <xs:element name="iva" type="xs:short" minoccurs="0"/> <xs:element name="idprv_serviciosiva" type="xs:int" minoccurs="0"/> <xs:element name="idemp_monedas" type="xs:int" minoccurs="0"/> <xs:element name="tipocalculo1" type="xs:short" minoccurs="0"/> <xs:element name="tipocalculo2" type="xs:short" minoccurs="0"/> </xs:sequence> </xs:complextype> </xs:element> </xs:choice> </xs:complextype> </xs:element> </xs:schema> <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1"> <documentelement xmlns=""> <prv_servicios diffgr:id="prv_servicios1" msdata:roworder="0"> <idprv_servicios>1</idprv_servicios> <servicios>aereo</servicios> <filler/> <markupavizo>0</markupavizo> <markuprest>0</markuprest> <markup>0</markup> <iva>1</iva> <idprv_serviciosiva>0</idprv_serviciosiva> <idemp_monedas>1</idemp_monedas> <tipocalculo1>1</tipocalculo1> <tipocalculo2>1</tipocalculo2> </prv_servicios> <prv_servicios diffgr:id="prv_servicios2" msdata:roworder="1"> <idprv_servicios>2</idprv_servicios> <servicios>autos</servicios> <filler/> <markupavizo>8.38</markupavizo> <markuprest>1</markuprest> <markup>10</markup> <iva>1</iva> <idprv_serviciosiva>0</idprv_serviciosiva> <idemp_monedas>1</idemp_monedas> <tipocalculo1>1</tipocalculo1> <tipocalculo2>1</tipocalculo2> </prv_servicios> <prv_servicios diffgr:id="prv_servicios3" msdata:roworder="2"> <idprv_servicios>3</idprv_servicios> <servicios>cruceros</servicios> <filler/> <markupavizo>12.5</markupavizo> <markuprest>5.5</markuprest> <markup>15</markup> <iva>1</iva> <idprv_serviciosiva>0</idprv_serviciosiva> <idemp_monedas>1</idemp_monedas> <tipocalculo1>1</tipocalculo1> <tipocalculo2>1</tipocalculo2> </prv_servicios> <prv_servicios diffgr:id="prv_servicios4" msdata:roworder="3"> <idprv_servicios>4</idprv_servicios> <servicios>excursiones</servicios> <filler/> <markupavizo>0</markupavizo> <markuprest>0</markuprest> <markup>0</markup> <iva>0</iva> <idprv_serviciosiva>0</idprv_serviciosiva> <idemp_monedas>2</idemp_monedas> <tipocalculo1>0</tipocalculo1> <tipocalculo2>0</tipocalculo2> </prv_servicios> <prv_servicios diffgr:id="prv_servicios5" msdata:roworder="4"> <idprv_servicios>5</idprv_servicios> <servicios>hoteles</servicios> <filler/> <markupavizo>12.5</markupavizo> <markuprest>5.5</markuprest> <markup>15</markup> <iva>0</iva> <idprv_serviciosiva>0</idprv_serviciosiva> <idemp_monedas>2</idemp_monedas> <tipocalculo1>1</tipocalculo1> <tipocalculo2>2</tipocalculo2> </prv_servicios> <prv_servicios diffgr:id="prv_servicios6" msdata:roworder="5"> <idprv_servicios>6</idprv_servicios> <servicios>otros</servicios> <filler/> <markupavizo>12.5</markupavizo> <markuprest>5.5</markuprest> <markup>15</markup> <iva>0</iva> <idprv_serviciosiva>0</idprv_serviciosiva> <idemp_monedas>2</idemp_monedas> <tipocalculo1>2</tipocalculo1> <tipocalculo2>2</tipocalculo2> </prv_servicios> <prv_servicios diffgr:id="prv_servicios7" msdata:roworder="6"> <idprv_servicios>7</idprv_servicios> <servicios>trenes</servicios> <filler/> <markupavizo>15.5</markupavizo> <markuprest>5.5</markuprest> <markup>22</markup> <iva>1</iva> <idprv_serviciosiva>0</idprv_serviciosiva> <idemp_monedas>1</idemp_monedas> <tipocalculo1>1</tipocalculo1> <tipocalculo2>1</tipocalculo2> </prv_servicios> <prv_servicios diffgr:id="prv_servicios8" msdata:roworder="7"> <idprv_servicios>8</idprv_servicios> <servicios>buses</servicios> <filler/> <markupavizo>15.5</markupavizo> <markuprest>10</markuprest> <markup>21</markup> <iva>2</iva> <idprv_serviciosiva>0</idprv_serviciosiva> <idemp_monedas>1</idemp_monedas> <tipocalculo1>1</tipocalculo1> <tipocalculo2>1</tipocalculo2> </prv_servicios> <prv_servicios diffgr:id="prv_servicios9" msdata:roworder="8"> <idprv_servicios>9</idprv_servicios> <servicios>global</servicios> <filler/> <markupavizo>0</markupavizo> <markuprest>0</markuprest> <markup>0</markup> <iva>1</iva> <idprv_serviciosiva>0</idprv_serviciosiva> <idemp_monedas>1</idemp_monedas> <tipocalculo1>1</tipocalculo1> <tipocalculo2>1</tipocalculo2> </prv_servicios> <prv_servicios diffgr:id="prv_servicios10" msdata:roworder="9"> <idprv_servicios>10</idprv_servicios> <servicios>traslados</servicios> <filler/> <markupavizo>12.5</markupavizo> <markuprest>5.5</markuprest> <markup>15</markup> <iva>0</iva> <idprv_serviciosiva>0</idprv_serviciosiva> <idemp_monedas>2</idemp_monedas> <tipocalculo1>0</tipocalculo1> <tipocalculo2>0</tipocalculo2> </prv_servicios> <prv_servicios diffgr:id="prv_servicios11" msdata:roworder="10"> <idprv_servicios>11</idprv_servicios> <servicios>cena show</servicios> <filler/> <markupavizo>0</markupavizo> <markuprest>0</markuprest> <markup>0</markup> <iva>1</iva> <idprv_serviciosiva>0</idprv_serviciosiva> <idemp_monedas>1</idemp_monedas> <tipocalculo1>0</tipocalculo1> <tipocalculo2>0</tipocalculo2> </prv_servicios> <prv_servicios diffgr:id="prv_servicios12" msdata:roworder="11"> <idprv_servicios>12</idprv_servicios> <servicios>paquetes</servicios> <filler/> <markupavizo>0</markupavizo> <markuprest>0</markuprest> <markup>0</markup> <iva>1</iva> <idprv_serviciosiva>0</idprv_serviciosiva> <idemp_monedas>2</idemp_monedas> <tipocalculo1>0</tipocalculo1> <tipocalculo2>0</tipocalculo2> </prv_servicios> <prv_servicios diffgr:id="prv_servicios13" msdata:roworder="12"> <idprv_servicios>13</idprv_servicios> <servicios>asistencia</servicios> <filler/> <markupavizo>0</markupavizo> <markuprest>0</markuprest> <markup>0</markup> <iva>1</iva> <idprv_serviciosiva>0</idprv_serviciosiva> <idemp_monedas>1</idemp_monedas> <tipocalculo1>1</tipocalculo1> <tipocalculo2>1</tipocalculo2> </prv_servicios> <prv_servicios diffgr:id="prv_servicios14" msdata:roworder="13"> <idprv_servicios>14</idprv_servicios> <servicios>guia</servicios> <filler/> <markupavizo>0</markupavizo> <markuprest>0</markuprest> <markup>0</markup> <iva>1</iva> <idprv_serviciosiva>0</idprv_serviciosiva> <idemp_monedas>1</idemp_monedas> <tipocalculo1>1</tipocalculo1> <tipocalculo2>1</tipocalculo2> </prv_servicios> <prv_servicios diffgr:id="prv_servicios15" msdata:roworder="14"> <idprv_servicios>15</idprv_servicios> <servicios>extras</servicios> <filler/> <markupavizo>0</markupavizo> <markuprest>0</markuprest> <markup>0</markup> <iva>0</iva> <idprv_serviciosiva>0</idprv_serviciosiva> <idemp_monedas>2</idemp_monedas> <tipocalculo1>0</tipocalculo1> <tipocalculo2>0</tipocalculo2> </prv_servicios> </documentelement> </diffgr:diffgram>
try this
<?php $wsdl = "http://192.168.0.120/service.asmx?wsdl"; //credenciales $credenciales = array(); //parametros de la llamada $credenciales["usuario"] = "username"; $credenciales["password"] = "pass"; //fin de credenciales $respuesta = new soapclient($wsdl); $consulta = $respuesta->consulta_servicios($credenciales); $pattern = '/<xs:schema.*<\/xs:schema>/'; $xml = preg_replace($pattern, '', $consulta->consulta_serviciosresult->any); $response = simplexml_load_string($xml); foreach ($response->documentelement->prv_servicios $servicio) { echo '----------------------------<br>'; echo 'idprv_servicios = ' . $servicio->idprv_servicios . '<br>'; echo 'servicios = ' . $servicio->servicios . '<br>'; echo 'filler = ' . $servicio->filler . '<br>'; echo 'markupavizo = ' . $servicio->markupavizo . '<br>'; echo 'markuprest = ' . $servicio->markuprest . '<br>'; echo 'markup = ' . $servicio->markup . '<br>'; echo 'iva = ' . $servicio->iva . '<br>'; echo 'idprv_serviciosiva = ' . $servicio->idprv_serviciosiva . '<br>'; echo 'idemp_monedas = ' . $servicio->idemp_monedas . '<br>'; echo 'tipocalculo1 = ' . $servicio->tipocalculo1 . '<br>'; echo 'tipocalculo2 = ' . $servicio->tipocalculo2 . '<br>'; } ?>
Comments
Post a Comment