Solid
Drosera anglica
Лучший способ сериализации массива в XML
По началу думал написать свой собственный класс конвертации массива в XML, затем понял, что это пустая трата времени. Наткнувишись на XML_Serializer задумался: "а оправдано ли использование столь мощного класса всего лишь для конвертации данных в XML?" Как насчёт производительности у данного класса? Не легче ли использовать нечто вроде: https://ssl.bitflux.ch/horde/chora/co.php/restapi/command.php?Horde=25389a6efa3f77788a58b375604d1464&r=8043 (array2dom) ?
Как делаете Вы?
Как быстрее и правильнее?
Лучше всего генерировать через: DOM или обычными строковыми методами?
ЗЫ. Сам же до этого использовал собственнописанную функцию:
По началу думал написать свой собственный класс конвертации массива в XML, затем понял, что это пустая трата времени. Наткнувишись на XML_Serializer задумался: "а оправдано ли использование столь мощного класса всего лишь для конвертации данных в XML?" Как насчёт производительности у данного класса? Не легче ли использовать нечто вроде: https://ssl.bitflux.ch/horde/chora/co.php/restapi/command.php?Horde=25389a6efa3f77788a58b375604d1464&r=8043 (array2dom) ?
Как делаете Вы?
Как быстрее и правильнее?
Лучше всего генерировать через: DOM или обычными строковыми методами?
ЗЫ. Сам же до этого использовал собственнописанную функцию:
PHP:
function array2xml($array, $i=0) {
if(!$i) {
$data = '<root>'."\r\n"; //'<?xml version="1.0"/?\>'."\r\n".
} else {
$data = '';
}
foreach($array as $k=>$v) {
if(is_numeric($k)) {
$k = 'item';
}
$data .= str_repeat("\t", $i).'<'.$k.'>';
if(is_array($v)) {
$data .= "\r\n".$this->array2xml($v, ($i+1)).str_repeat("\t", $i);
} else {
$data .= str_replace(array('<', '>', '&', '\'', '"'), array('<', '>', '&', ''', '"'), $v);
}
$data .= '</'.$k.'>'."\r\n";
}
if(!$i) {
$data .= '</root>';
}
return $data;
}