当计数+结果数组时,NuSoap复杂类型

时间:2017-01-09 09:49:05

标签: php nusoap

我需要一些帮助来实现php nusoap响应。

这是我的函数返回的内容

, \, and, when history expansion is enabled, !.  The characters $ and

现在我需要将其作为xml返回。无论我尝试什么(基本上猜测)我都会

Array
(
    [total] => 8177
    [results] => Array
        (
            [0] => Array
                (
                    [id] => 340
                    [name] => Hamburg
                )

            [1] => Array
                (
                    [id] => 344
                    [name] => Fos
                )
         )
)

你可以看到<total xsi:type="xsd:int">8177</total> <results xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType=":[1000]"> <item xsi:type="xsd:"> <id xsi:type="xsd:string">340</id> <name xsi:type="xsd:string">Hamburg</name> </item> (在:之前为空)也是SOAP-ENC:arrayType=":[1000]">,我的所有项目都是字符串/字符串。

到目前为止,我将发布我的代码,希望有人能发现问题。

<item xsi:type="xsd:">

1 个答案:

答案 0 :(得分:0)

好的,所以经过几个小时的后退和前进,我设法猜出了正确的答案,我会在这里发布,以防其他人遇到nusoap复杂类型

$server->register("tankerPortsSearch", [
        'name' => 'xsd:string',
        'step' => 'xsd:int',
        'page' => 'xsd:int',
    ], [
        'total'   => 'xsd:int',
        'results' => 'tns:responceArray'
    ], 'urn:tankerPortsSearch', 'urn:tankerZonesTraffic#tankerPortsSearch', 'rpc', 'encoded', 'Tanker Ports Search');


$server->wsdl->addComplexType('responceArrayData', 'complexType', 'struct', '', '', [
    'id'   => array('name' => 'id', 'type' => 'xsd:int'),
    'name' => array('name' => 'name', 'type' => 'xsd:string')
]);
// *************************************************************************

// Complex Array ++++++++++++++++++++++++++++++++++++++++++
$server->wsdl->addComplexType('responceArray', 'complexType', 'array', '', '', [], [
    [
        'ref'            => 'SOAP-ENC:arrayType',
        'wsdl:arrayType' => 'tns:responceArrayData[]',
    ]
], 'tns:responceArrayData');

希望我设法帮助某人。

干杯