使用SOAP-PHP从WSDL中检索值

时间:2013-05-01 22:06:50

标签: php soap wsdl

我的结构非常糟糕,WSDL文件,我无法理解如何从中检索信息。

  

无法从外部网络访问VM,因此我无法共享整个WSDL文件

我想使用带有参数的getList函数并返回一个包含多个值的字符串。

SOAP Request

<?xml version="1.0" encoding="UTF-8"?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
    <S:Header/>
    <S:Body>
        <ns2:getList xmlns:ns2="http://Wishlist.eBookCafe/">
            <arg0>2</arg0>
        </ns2:getList>
    </S:Body>
</S:Envelope>

SOAP Response

<?xml version="1.0" encoding="UTF-8"?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
    <S:Body>
        <ns2:getListResponse xmlns:ns2="http://Wishlist.eBookCafe/">
            <return>[1]</return>
        </ns2:getListResponse>
    </S:Body>
</S:Envelope>

我的问题是,因为值包含在return标记内,我不知道如何使用SOAP将它存储在PHP变量中。

$list = $service->getList(array('arg0'=>$id));
print_r($list);

即使我使用静态数字作为传递参数,它总是返回包含id = 1的用户的值。

1 个答案:

答案 0 :(得分:0)

来自博文(现在已删除 :()&gt;&gt;

<?php
$url = 'your_url_orFilePath';
$client = new SoapClient($url);

$xmlr = new SimpleXMLElement("<main_key></main_key>");
$xmlr->addChild('childName1', $childName1);
$xmlr->addChild('childName2', $childName2);
------
----likewise---

$params = new stdClass();
$params->xml = $xmlr->asXML();
$result = $client->main_key_function($params);
?>