2012-03-20 6 views
0

nusoapから返されるデータの配列にアクセスするときに、重複するタグが発生します。私は複合型を試しましたが、必要な方法で動作しません。つまり、アイテムタグではなく特定のタグで囲みます。私は複雑な型を次のように宣言しています。複合型配列の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

この問題は、単に配列を返すようにWebサービスを変更するだけで解決されています。複合型の使用を避けました。 – MACMAN

答えて

0

問題を解決するには、単にWebサービスを変更して配列を返すだけです。複合型の使用を避けました。