如何生成XML?
php 中生成 XML
数据,通常有两种方式:
- 拼接字符串:顾名思义,将每段 xml 数据以字符串形式拼接到一起。
- 系统类:使用 php 提供的类,domDocument / XMLWriter / SimpleXML。
我们使用第一种方式(拼接字符串)来封装 XML数据接口,代码中有详细注释。
';//xml head
$xml .= '';//拼接根节点(开始)
$xml .= self::toXML($result);//调用处理函数
$xml .= '';//拼接根节点(结束)
echo $xml;
}
# 解析结果数组转为对应的xml节点
public static function toXML($data){//参数为data(result)
# 临时存储xml数据
$xml = $id = '';
# 遍历并拼接字符串
foreach($data as $key => $value){
# 如果key是数字(即非关联数组 => [hello,2,true] )
# 以 展示,id为key
if(is_numeric($key)){//如果是数字
$id = "id='{$key}'";//将key作为id属性
$key = 'item ';//将item作为节点名
}
$xml .= "";//开始节点
# 如果是数组则递归(否则直接返回value值)
$xml .= is_array($value) ? self::toXML($value) : $value;
$xml .= "";//结束节点
}
return $xml;
}
}
# 模拟数据
$data = [
'id' => 1,
'name' => '王佳斌',
'type' => ['A','B','C'],//非关联数组
'xx' => [//复杂混合数组
[1,2,3],
['a' => 'aa', 'b' => 'bb']
]
];
# 调用
Response::xml(200, '返回成功', $data);
?>
结果如下: