<?php
// 函数将多维数组转换成xml,内部为工厂方法,递归
function array_to_XML($obj, $array)
{
foreach ($array as $k => $v)
{
if(is_numeric($k))
$k = 'item' . $k;
if(is_array($v)){
$node = $obj->addChild($k);
array_to_XML($node, $v);
}else{
$obj->addChild($k, htmlspecialchars($v));
}
}
}
//定义一个多维数组
$test_array = array (
'0' => array (
'id' => 'Y-107',
'M' => array (
'name' =>'EVE',
'status' => 'Open',
'age' => 0,
'address' => array (
'city' => 'shang hai'
)
),
'profile' => array (
'color_code' =>'Desert theme',
's_code' => 'ys77638'
)
),
'1' => array (
'id' => 'Y-108',
'M' => array (
'name' => 'SC2',
'status' => 'Open',
'age' => 10,
'address' => array (
'city'=>'bei jing'
)
),
'profile' => array (
'picture' => '3.gif',
's_key' => 'scasdf45155'
)
)
);
// 创建新的simpleXML实例,注入内存,确定根节点
$xml = new SimpleXMLElement('<root/>');
// 回调函数
array_to_XML($xml, $test_array);
//直接打印(不显示尖括号,可以看源代码来显示尖括号)
echo $xml->asXML();
// 保存为XML文件
echo (($xml->asXML('data.xml')) ? 'Your XML file has been generated successfully!' : 'Error generating XML file!');
?>
将多维php数组转换为XML文件或以字符串输出
最新推荐文章于 2023-07-28 20:22:30 发布