PHP和Wfc服务

时间:2015-12-20 08:23:18

标签: php web-services

我有一个wfc服务,我需要从中获取一些值。我这样称呼我的wfc服务:

$client = new SoapClient($url);     
$response = $client->GetInfoByNumeroContrato(array('schema'=>$schema, 'numContrato'=>$numContract ));

GetInfoByNumeroContrato是metodo,它可以获得2个参数。我的客户看起来像这样:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
  <GetInfoByNumeroContratoResponse xmlns="http://tempuri.org/">
     <GetInfoByNumeroContratoResult>
        <xs:schema id="InfoByNumContrato" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
           <xs:element name="InfoByNumContrato" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
              <xs:complexType>
                 <xs:choice minOccurs="0" maxOccurs="unbounded">
                    <xs:element name="InfoByNumContrato">
                       <xs:complexType>
                          <xs:sequence>
                             <xs:element name="NumContrato" type="xs:string" minOccurs="0"/>
                             <xs:element name="Titular" type="xs:boolean" minOccurs="0"/>
                             <xs:element name="CDU_TipoEntidade" type="xs:string" minOccurs="0"/>
                             <xs:element name="Nome" type="xs:string" minOccurs="0"/>
                             <xs:element name="Telefone" type="xs:string" minOccurs="0"/>
                             <xs:element name="telemovel" type="xs:string" minOccurs="0"/>
                             <xs:element name="email" type="xs:string" minOccurs="0"/>
                             <xs:element name="Morada" type="xs:string" minOccurs="0"/>
                             <xs:element name="contacto" type="xs:string" minOccurs="0"/>                                 
                          </xs:sequence>
                       </xs:complexType>
                    </xs:element>
                 </xs:choice>
              </xs:complexType>
           </xs:element>
        </xs:schema>

我的问题是如何才能获得NumContrato的elemente价值。使用wfc服务并调用获得2个参数的metodo如何获取元素的值。

1 个答案:

答案 0 :(得分:0)

我找到了解决此问题的方法。我需要获取“NumContrato”的值,所以我不得不解析xml我的对象并按原样执行:

$sxe= new SimpleXMLElement($response->GetInfoByNumContratoResult->any)

然后获取值:

$NumContrato=(string)$sxe->InfoByNumContrato->InfoByNumContrato[0]->NumContrato

并获得了我需要的价值。