MP
if (!function_exists('array2xml')) {
/**
* Конвертирует массив в xml
*
* @param $array
* @param null|string|SimpleXMLElement $root
* @param string $version
* @param string $encoding
*
* @return SimpleXMLElement
*/
function array2xml($array, $root = null, $version = '1.0', $encoding = 'UTF-8')
{
if (!($root instanceof \SimpleXMLElement)) {
$rootName = is_string($root) ? $root : 'root';
$root = new \SimpleXMLElement('<?xml version="' . $version . '" encoding="' . $encoding . '" ?><' . $rootName . '></' . $rootName . '>');
}
foreach ($array as $key => $value) {
if (is_array($value)) {
$sub_node = $root->addChild(is_numeric($key) ? 'item' . $key : (string) $key);
array2xml($value, $sub_node);
} else {
$root->addChild((string) $key, htmlspecialchars((string) $value));
}
}
return $root->asXML();
}
}
о я во еще вспомнил вариант
для простых xml можно заюзать генерацию из ассоциативного массива. и да тут юзается SimpleXML