Chciałbym uzyskać tekst z elementu <Version>
, który jest zagnieżdżony w bloku WSDL <service>
. WSDL, o którym mowa, to aplikacja Ebay: Trading api. Fragment w pytaniu wygląda mniej więcej tak:Pobierz element z WSDL w PHP za pomocą 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>
Jestem obecnie to robi:
$xml = new DOMDocument();
$xml->load($this->wsdl);
$version = $xml->getElementsByTagName('Version')->item(0)->nodeValue;
To działa, ale zastanawiam się, czy istnieje sposób, aby uzyskać ten natywnie przy użyciu rozszerzenia SOAP PHP ?
myślałem coś takiego będzie pracować poniżej ale nie:
$client = new SoapClient($this->wsdl);
$version = $client->eBayAPIInterfaceService->Version;
Wydaje mi się, że umieszczanie linku jako odpowiedzi to zła forma, więc zamiast tego komentuję. Znalazłem ten link naprawdę przydatne w nauce korzystania z klasy PHP SoapClient http://devzone.zend.com/2202/php-and-soap-first-steps/ Podaje przykłady przy użyciu WSDL. Ta klasa zwraca dane jako obiekt, z którego można pobrać dane. – crdunst
@crdunst - Nie widzę żadnego sposobu na uzyskanie tego elementu z klasy SoapClient. Mogę zainicjować klienta, wywołać metody, uzyskać właściwości, itp. Ale dla mojego życia nie mogę wymyślić, jak uzyskać dostęp do ''. Plik wsdl jest dostępny publicznie tutaj http://developer.ebay.com/webservices/latest/ebaysvc.wsdl. Jeśli możesz podać przykład pracy przy użyciu SoapClient, byłoby to bardzo pomocne. –
billynoah
Zacząłem na ciebie patrzeć, ale API serwisu eBay wydaje się nieskończenie bardziej skomplikowane niż API, z którym pracowałem. Znalazłem tę odpowiedź SO - wydaje się, że ma działający przykład: http://stackoverflow.com/questions/16502207/how-to-connect-to-the-ebay-trading-api-through-soapclient Powodzenia. – crdunst