1.xml封装方法
主要是通过字符串拼接的方法输出xml
/**
* 按XML方式输出通信数据
* @param integer $code 状态码
* @param string $message 提示信息
* @param array $data 数据
* return string
*/
public static function xmlEncode($code,$message="",$data=array()){
if(!is_numeric($code)){
return '';
}
$result=array(
'code'=>$code,
'message'=>$message,
'data'=>$data,
);
header("Content-Type:text/xml");
$xml="<?xml version='1.0' encoding='UTF-8'?>";
$xml.="<root>";
$xml.=self::xmlToEncode($result);
$xml.="</root>";
echo $xml;
exit();
}
其中xmlToEncode是将属性进行解析
/**
* 解析xml
* @param unknown $result
*/
public static function xmlToEncode($result){
$xml=$attr="";
foreach ($result as $key=>$value){
//当key是数字的时候
if(is_numeric($key)){
$attr = " id='" . $key . "'";
$key="item";
}
$xml.="<{$key}{$attr}>";
$xml.=is_array($value)?self::xmlToEncode($value):$value;
$xml.="</{$key}>";
}
return $xml;
因为当数组是array(1,2,3)的时候会自动认为key是0,1,2等等,并且在xml中不能够用数字当节点,所以通过判断将key的id赋值为属性。