Когда я получаю доступ к массиву данных, который возвращается из nusoap, я сталкиваюсь с повторяющимися тегами. Я пробовал с сложным типом, но он не работает так, как мне нужно, i.e, заключая в конкретные теги вместо тегов элементов. Я объявляю сложный тип следующим образом.Сложный тип Array nusoap и анализ iPhone
$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 нет данных.
проблема была решена путем простого изменения веб-службы для возврата массива. Избегайте использования complextype. – MACMAN