nusoap传递数组对象

nusoap传递数组对象

  由于工作原因 用PHP调用WEB SERVICE,使用Nusoap包进行操作。
    由于对方提供的一个方法中,需要传递数组对象作为参数。我实验了近百次,发现nusoap不支持二维数组对象,也不支持二维数组。基本上就是需要下面这种格式的数据作为参数。
    Array(
      key0=>value
      key1=>Array(
       key=>Array(k0=>v),
       key=>Array(k1=>v))
    )

   发现nusoap无法解析此参数。就读了下nusoap_client.PHP源文件。
   在6286行,增加如下代码便可
   if( $eName == 'key' ){
        foreach( $xvalue AS $eName=>$xv ) {
            $v = $xv;
            $xml .= $this->serializeType(trim($eName), isset($attrs['type']) ? $attrs['type'] : $attrs['ref'], $v, $use, $encodingStyle, false);
        }
       continue;
  }
  将key替换为你所需要的key就可以了。
  总结:数组的key是不可以重复的,而xml是允许且其本质就是需要节点重复的。
 

你可能感兴趣的:(SOAP)