第一种方式:
使用方法:
$arr = ['name'=>'test','name2'=>['name22'=>'test1']];//数组维度可以随意
$xml = arrayToXml($arr);
function arrayToXml($arr)
{
foreach ($arr as $key => $val) {
//处理xml中为同一级内容且key名字相同的情况
//例:<contactPerson>****</contactPerson><contactPerson>###</contactPerson>
$key = explode("_", $key);
$key = $key['0'];
if (is_array($val)) {
$xml .= "<" . $key . ">" . arrayToXml($val) . "</" . $key . ">";
} else {
$xml .= "<" . $key . ">" . $val . "</" . $key . ">";
}
}
return $xml;
}
输出结果:
<name>test</name>
<name2>
<name22>test1</name22>
</name2>
第二种方式:
ps:中文会有问题,乱码
使用方法:
$xml = new SimpleXMLElement('<root/>');
echo $xml->asXML();//echo $xml->asXML('test.xml');
function array_to_XML($obj, $array)
{
foreach ($array as $k => $v) {
if (is_array($v)) {
$node = $obj->addChild($k);
array_to_XML($node, $v);
} else {
$obj->addChild($k, $v);
}
}
}
网友评论