如何从nusoap返回一个xml

时间:2014-02-19 00:45:00

标签: nusoap

我有一个用nusoap创建的web服务,实际上是给我一个字符串 我想发送名称和姓氏到我的网络服务,我的网络服务必须保存这些信息并给我一个ID(自动增量),它确实如此,但我想要这样的东西

发送: nombrepersona =“ozzy” apellidopersona = “奥斯本”

我得到了id(自动增量),例子

1

但我想要一个类似

的xml
<id>1</id>

 <id>1</id>    
 <name>ozzy</name>
 <lastname>osbourne</lastname>

<response>
  <id>1</id>    
  <name>ozzy</name>
  <lastname>osbourne</lastname>
</response>

从我的网络服务消费

<?php 
error_reporting(1);
require_once('lib/nusoap.php');
$client = new nusoap_client("http://localhost/nusoap/server3.php?wsdl",'wsdl');
$nombre="ozzy";
$apellido="osbourne";
$params =array(       
   'nombrepersona'=>$nombre,
   'apellidopersona'=>$apellido);
$result = $client->call('insertar',array($params));
?>

我的方法

的定义
<?php
$server->wsdl->addComplexType(
    'Persona',
    'complexType',
    'struct',
    'all',
    '',
    array(          
        'nombrepersona' => array('name' => 'nombrepersona', 'type' => 'xsd:string'),
        'apellidopersona' => array('name' => 'apellidopersona', 'type' => 'xsd:string')         
    )
);

    $server->wsdl->addComplexType(
    'ArrayOfPersona',
    'complexType',
    'array',
    '',
    'SOAP-ENC:Array',
    array(),
    array(
        array('ref' => 'SOAP-ENC:arrayType', 'wsdl:arrayType' => 'tns:Persona[]')               
    ),
    'tns:Persona'
);

$server->register(
    'insertar',                        // Nombre del método
    array('datos' =>'tns:Persona'),       // Parámetros de entrada
    array('return' => 'xsd:string'),      // Parámetros de salida
    SOAP_SERVER_NAMESPACE,                // Nombre del workspace
    SOAP_SERVER_NAMESPACE.'#insertar',    // Acción soap
    'rpc',                                // Estilo
    'encoded',                            // Uso
    'Insertar datos de la persona'        // Documentación
);
?>

功能


<?php
function insertar($datos) 
{       
    require_once('conectar.php');
    mysql_select_db($database,$conexion);
    mysql_query("SET NAMES 'utf8'");
    $query="INSERT INTO personas (`nombrep`,`apellidop`) VALUES('".$datos['nombrepersona']."','".$datos['apellidopersona']."')";
    $record=mysql_query($query,$conexion) or die ((mysql_error()));
    $id=mysql_insert_id();
    return $id;

}
?>

1 个答案:

答案 0 :(得分:0)

解决方案,定义输出必须如下:

阵列(&#39;响应&#39; = GT;&#39; XSD:数组&#39)

并返回这样的函数:

返回数组(&#39; id&#39; =&gt; $ id等);