/**
* 数据XML编码
* @param mixed $data 数据
* @param string $item 数字索引时的节点名称
* @param string $id 数字索引key转换为的属性名
* @return string
*/
function data_to_xml($data, $item='item', $id='id') { $xml = $attr = ''; foreach ($data as $key => $val) { if(is_numeric($key)){ $id && $attr = " {$id}=\"{$key}\""; // {$id}=\"{$key}\"执行后 id="1" 其中\为转义字符,转义双引号字符 $key = $item; } $xml .= "<{$key}{$attr}>";//$key为节点名 $attr为属性 $xml .= (is_array($val) || is_object($val)) ? data_to_xml($val, $item, $id) : $val; $xml .= "</{$key}>"; } return $xml; } $data = array( 'note'=>array( 'from'=>'liming', 'to'=>'xiaowang', 'message'=>'hello,world!' ) ); $a=data_to_xml($data); var_dump($a);
输出结果为
string '<note> <from>liming</from> <to>xiaowang</to> <message>hello,world!</message> </note>' (length=80)
注意:结果格式有手动改了一下!