2012-03-20 3 views
0

Когда я получаю доступ к массиву данных, который возвращается из 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 нет данных.

+0

проблема была решена путем простого изменения веб-службы для возврата массива. Избегайте использования complextype. – MACMAN

ответ

0

проблема была решена путем простого изменения веб-службы для возврата массива. Избегайте использования complextype.