<?php
$input_array
= array(
   
'article' => array(
        array
(
           
'title' => 'Cómo dibujar una ruta sobre un mapa mediante la API de Google Maps Direction',
           
'link' => 'http:/hola.com/articulo/como_dibujar_una_ruta_sobre_un_mapa_mediante_la_api_de_google_maps_direction_1973',
           
'description' => 'En este tutorial veremos cómo dibujar una ruta entre dos localizaciones sobre un mapa utilizando la API de Google Maps Direction. Esta API te proporciona el servicio Direction el cual es ideal para dibujar rutas entre ubicaciones. Este servicio requiere que se dibuje tanto el inicio como el punto final de ruta. '
       
),
        array
(
           
'title' => 'Cambiar la clase de un elemento dinámicamente mediante jQuery',
           
'link' => 'http://www.hola.com/articulo/cambiar_la_clase_de_un_elemento_dinamicamente_mediante_jquery_1974',
           
'description' => 'En este artículo vamos a ver cómo cambiar la clase de un elemento CSS utilizando jQuery. Ya hemos visto en anteriores tutoriales cómo cambiar el fichero CSS a llamar en el documento basándonos en el tamaño del viewport del usuario para hacer que una página sea responsive, y esto es muy similar, ya verás... '
       
)
   
)
);

$xml
= new DOMDocument();

$rootNode
= $xml->appendChild($xml->createElement("items"));
foreach ($input_array['article'] as $article) {
   
if (! empty($article)) {
        $itemNode
= $rootNode->appendChild($xml->createElement('item'));
       
foreach ($article as $k => $v) {
            $itemNode
->appendChild($xml->createElement($k, $v));
       
}
   
}
}

$xml
->formatOutput = true;

$backup_file_name
= 'file_backup_' . time() . '.xml';
$xml
->save($backup_file_name);

header
('Content-Description: File Transfer');
header
('Content-Type: application/xml');
header
('Content-Disposition: attachment; filename=' . basename($backup_file_name));
header
('Content-Transfer-Encoding: binary');
header
('Expires: 0');
header
('Cache-Control: must-revalidate');
header
('Pragma: public');
header
('Content-Length: ' . filesize($backup_file_name));
ob_clean
();
flush
();
readfile
($backup_file_name);
exec('rm ' . $backup_file_name);
?>