请问nusoap,如何返回xml格式的数据,
我的网站需要和软件对接,需要提供一个webservice接口
软件那边需要下面这种格式的数据:
<?xml version="1.0" encoding="utf-8" ?>
<Users>
<User UserName="zhangsan" sex="男" >
</User>
</Users>
我的网站需要和软件对接,需要提供一个webservice接口
软件那边需要下面这种格式的数据:
<?xml version="1.0" encoding="utf-8" ?>
<Users>
<User UserName="zhangsan" sex="男" >
</User>
</Users>
require_once("lib/nusoap.php");
mysql_connect("localhost","root","") //填写mysql用户名和密码
or die("Could not connect to MySQL server!");
mysql_select_db("xxx") //数据库名
or die("Could not select database!");
mysql_query('set names "utf-8"'); //数据库内数据的编码
$soap = new soap_server;
$soap->configureWSDL('getUserInfo'); // 初始化对 WSDL 的支持
// 注册服务
$soap->register('getUserInfo',
array("str1"=>"xsd:string","str2"=>"xsd:string"), // 输入参数的定义
array("return"=>"xsd:string"), // 返回参数的定义
'','','rpc','encoded',
'获取用户信息函数'
);
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';
$soap->service($HTTP_RAW_POST_DATA);
function getUserInfo($str1,$str2) {
$sql = "SELECT * from ts_user where uname='$str1'";
$query = mysql_query($sql);
$row = mysql_fetch_array($query);
$uid = $row['uid']; if (is_string($str1) && is_string($str2)){ return $uid; }else{
return new soap_fault(' 客户端 ','','getUserInfo 函数的参数应该是两个字符串 ');
}
}
?>这段代码返回的是 uid
<?xml version="1.0" encoding="utf-8" ?>
<Users>
<User uid="112" sex="男" >
</User>
</Users>
亦即
echo <<<ENDOFXML
<?xml version="1.0" encoding="utf-8" ?>
<Users>
<User uid="{$uid}" sex="{$sex}" >
</User>
</Users>
ENDOFXML如果你有很多个地方输出不同的xml,建议使用php的simpleXML库