我想從嵌套在WSDL的<service>
塊中的<Version>
元素中獲取文本。有問題的WSDL是Ebay的Trading api。有問題的片段看起來是這樣的:使用SoapClient從PHP獲取元素使用SoapClient獲取PHP中的元素
<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>
目前,我正在做這個:
$xml = new DOMDocument();
$xml->load($this->wsdl);
$version = $xml->getElementsByTagName('Version')->item(0)->nodeValue;
這工作,但我不知道是否有得到這個本地使用PHP的SOAP擴展的方法?
我的想法像下面這樣的工作,但它並不:
$client = new SoapClient($this->wsdl);
$version = $client->eBayAPIInterfaceService->Version;
我認爲只發佈一個鏈接作爲一個答案是不好的形式,所以我反而評論。 我發現這個鏈接在學習如何使用SoapClient PHP類時非常有用,它提供了使用WSDL的例子。該類將數據作爲可以從中獲取數據的對象返回。 – crdunst
@crdunst - 我沒有看到任何方式從SoapClient類中獲取該元素。我可以初始化客戶端,調用方法,獲取屬性等,但對於我的生活,我無法弄清楚如何訪問''。 wsdl在這裏公開可用http://developer.ebay.com/webservices/latest/ebaysvc.wsdl。如果你可以提供一個使用SoapClient的工作示例,這將是非常有用的。 –
billynoah
我開始爲你着想,但ebay API似乎比我一直在使用的API複雜得多。我發現這個答案雖然 - 它似乎有一個工作的例子:http://stackoverflow.com/questions/16502207/how-to-connect-to-the-ebay-trading-api-through-soapclient祝你好運。 – crdunst