当我访问从nusoap返回的数据数组时,我遇到重复的标记。我尝试使用复杂类型,但它不能按我要求的方式工作,即封装在特定标签而不是项目标签中。我按照以下方式声明复杂类型。
$server->wsdl->addComplexType(
'ProductArray',
'complexType',
'struct',
'all',
'',
array(
'pid' => array('name' => 'pid', 'type' => 'xsd:string'),
'pname' => array('name' => 'pname', 'type' => 'xsd:string')
)
);
我注册了我的功能:
$server->register('ProdInfo', // method name
array('product' => 'tns:product'), // input parameters
array('return' => 'tns:ProductArray'), // output parameters
'urn:productcomplextype', // namespace
'urn:productcomplextype/ProdInfo', // soapaction
'rpc', // style
'encoded', // use
'Product Information' // documentation
);
功能
function ProdInfo ($product) {
//code
return array('pid'=>$pid,'pname'=>$pname);
}
如果我硬编码一个返回值,我就会得到值。但作为一个数组,我在显示正确的值时遇到了问题。它抛出以下输出
Array
(
[pid] => Array
[pname] => Array
)
请帮忙
更新
这是由于与数组中的函数返回数据有关的问题。正确返回后立即解决。现在数据显示如下
Array
(
[ProductInfo] => Array
(
[0] => Array
(
[pid] => 1
[pname] => Steering
)
[1] => Array
(
[pid] => 18
[pname] => Wheel Base
)
)
)
这使得在iPhone应用程序中解析它变得困难。在iPhone中,响应没有数据。
答案 0 :(得分:0)
只需更改webservice以返回数组即可解决此问题。避免使用complextype。