我想从嵌套在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