Как конвертировать array в xml на laravel?

Пользователь

от autumn_parker , в категории: PHP , 7 месяцев назад

Как конвертировать array в xml на laravel?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от william_stoltenberg , 7 месяцев назад

@autumn_parker 

В Laravel можно использовать класс SimpleXMLElement для создания XML-файла из массива. Для этого можно использовать следующий код:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
use IlluminateSupportFacadesResponse;
use IlluminateSupportFacadesFile;

$array = [
    'name' => 'John Doe',
    'age' => 30,
    'email' => '[email protected]'
];

$xml = new SimpleXMLElement('<root/>');
array_walk_recursive($array, function ($value, $key) use ($xml) {
    $xml->addChild($key, $value);
});

$file_name = 'data.xml';
$file_path = storage_path($file_name);
File::put($file_path, $xml->asXML());

return Response::download($file_path, $file_name);


В этом примере создается простой массив $array, затем создается объект SimpleXMLElement с корневым элементом <root/>. Затем мы используем функцию array_walk_recursive, чтобы перебрать все элементы массива и добавить их как дочерние элементы к нашему корневому элементу. Наконец, мы сохраняем XML-файл на диск и отправляем его пользователю для загрузки с помощью функции Response::download.


Обратите внимание, что перед использованием функций File и Response необходимо добавить соответствующие импорты. Также не забудьте проверить права доступа к файловой системе, чтобы убедиться, что ваш скрипт имеет права на запись в папку назначения.