请问nusoap,如何返回xml格式的数据,
我的网站需要和软件对接,需要提供一个webservice接口
软件那边需要下面这种格式的数据:
<?xml version="1.0" encoding="utf-8" ?>
<Users>
  <User UserName="zhangsan" sex="男"  >
  </User>
</Users>

解决方案 »

  1.   

    <?php
    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
      

  2.   

    需要的是把这个uid以xml的形式输出例如
    <?xml version="1.0" encoding="utf-8" ?>
    <Users>
      <User uid="112" sex="男" >
      </User>
    </Users>
      

  3.   

    如果你仅有这个地方使用xml,将其按照html对待即可
    亦即
    echo <<<ENDOFXML
    <?xml version="1.0" encoding="utf-8" ?>
    <Users>
      <User uid="{$uid}" sex="{$sex}" >
      </User>
    </Users>
    ENDOFXML如果你有很多个地方输出不同的xml,建议使用php的simpleXML库