tengo una aplicación para generar ficheros XML con datos de una tabla html. Con un bucle for recorro las filas de la tabla y se van generando todos los XML. El problema es que la funcion descargararchivo abre todos los ficheros en el navegador.
Agradecería alguna ayuda para saber como puedo ir añadiendo estos ficheros en un ZIP (he leido sobre jsZIP pero no se implementarlo en este caso) y poder descargarlo solo el zip.. Les indico el codigo que recorre la table, genera el XML y descarga el archivo.
Código PHP:
//Recorrer la tabla para ir generando XML
for (var i = 0; i <filas.length ; i++) {
descargarArchivo(generarXml(datos), 'archivo.xml');
}
//Genera un objeto Blob con los datos en un archivo XML
function generarXml(datos) {
var texto = [];
texto.push('<?xml version="1.0" encoding="UTF-8" ?>\n');
texto.push('<datos>\n');
texto.push('\t<nombre>');
texto.push(datos.nombre);
texto.push('</nombre>\n');
return new Blob(texto, {
type: 'application/xml'
});
};
function descargarArchivo(contenidoEnBlob, nombreArchivo) {
var reader = new FileReader();
reader.onload = function (event) {
var save = document.createElement('a');
save.href = event.target.result;
save.target = '_blank';
save.download = nombreArchivo || 'archivo.dat';
var clicEvent = new MouseEvent('click', {
'view': window,
'bubbles': true,
'cancelable': true
});
save.dispatchEvent(clicEvent);
(window.URL || window.webkitURL).revokeObjectURL(save.href);
};
reader.readAsDataURL(contenidoEnBlob);
};