Vorrei ottenere il testo dall'elemento <Version>
che è annidato all'interno del blocco <service>
di un WSDL. Il WSDL in questione è Ebay Trading api. Il frammento in questione simile a questa:Ottieni elemento da WSDL in PHP utilizzando SoapClient
<wsdl:service name="eBayAPIInterfaceService">
<wsdl:documentation>
<Version>941</Version>
</wsdl:documentation>
<wsdl:port binding="ns:eBayAPISoapBinding" name="eBayAPI">
<wsdlsoap:address location="https://api.ebay.com/wsapi"/>
</wsdl:port>
</wsdl:service>
Attualmente sto facendo questo:
$xml = new DOMDocument();
$xml->load($this->wsdl);
$version = $xml->getElementsByTagName('Version')->item(0)->nodeValue;
Questo funziona, ma mi chiedo se c'è un metodo per ottenere questo modo nativo con estensione SOAP di PHP ?
Stavo pensando qualcosa di simile al seguente avrebbe funzionato ma non è così:
$client = new SoapClient($this->wsdl);
$version = $client->eBayAPIInterfaceService->Version;
Penso che pubblicare solo un collegamento come risposta sia una cattiva forma, quindi sto commentando. Ho trovato questo link molto utili per imparare a utilizzare la classe PHP SoapClient http://devzone.zend.com/2202/php-and-soap-first-steps/ Esso fornisce esempi in utilizzando un WSDL. Quella classe restituisce i dati come un oggetto da cui puoi prelevare i dati. – crdunst
@crdunst - Non vedo alcun modo per ottenere quell'elemento dalla classe SoapClient. Posso inizializzare il client, chiamare metodi, ottenere proprietà, ecc. Ma per la vita di me non riesco a capire come accedere a ''. Wsdl è disponibile pubblicamente qui http://developer.ebay.com/webservices/latest/ebaysvc.wsdl. Se è possibile fornire un esempio funzionante con SoapClient che sarebbe molto utile. –
billynoah
Ho iniziato a guardarlo per te, ma l'API di ebay sembra infinitamente più complessa dell'API con cui ho lavorato. Ho trovato questa risposta SO - sembra avere un esempio funzionante: http://stackoverflow.com/questions/16502207/how-to-connect-to-the-ebay-trading-api-through-soapclient Buona fortuna. – crdunst