我需要使用PHP SoapClient解析一些xml.
响应似乎也包含xsd.
以下是我得到的回复示例.
我欢迎你的意见和贡献.非常感谢你.
<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>
解决方法:
试试这个
<?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 as $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>';
}
?>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。