La conversione di file da un formato all’altro è una delle operazioni più comuni in molti progetti software. Node.js, grazie alla sua vasta libreria di pacchetti e strumenti, rende questo processo semplice ed efficace. In questo articolo vedremo come convertire un file CSV in XML utilizzando Node.js.
Per convertire un file CSV in XML, utilizzeremo due pacchetti:
csv-parser
per leggere e analizzare i file CSV.xmlbuilder2
per creare il file XML.
Installa i pacchetti con il comando:
npm install csv-parser xmlbuilder2
Quindi creiamo il codice principale:
const fs = require('fs');
const csv = require('csv-parser');
const { create } = require('xmlbuilder2');
// Funzione principale
function convertCsvToXml(csvFilePath, xmlFilePath) {
const data = [];
// Leggi il file CSV
fs.createReadStream(csvFilePath)
.pipe(csv())
.on('data', (row) => {
data.push(row); // Aggiungi ogni riga del CSV all'array
})
.on('end', () => {
// Converte l'array di oggetti in XML
const xmlObj = {
root: {
record: data
}
};
const xml = create(xmlObj).end({ prettyPrint: true });
// Scrive il file XML
fs.writeFileSync(xmlFilePath, xml, 'utf8');
console.log(`Conversione completata! File XML salvato in: ${xmlFilePath}`);
})
.on('error', (err) => {
console.error('Errore durante la lettura del CSV:', err);
});
}
// Percorsi dei file
const csvFilePath = 'input.csv'; // Sostituisci con il tuo file CSV
const xmlFilePath = 'output.xml'; // Nome del file XML in uscita
// Avvia la conversione
convertCsvToXml(csvFilePath, xmlFilePath);
Crea un file input.csv
con il contenuto di esempio:
name,age,city
Alice,30,New York
Bob,25,Los Angeles
Charlie,35,Chicago
Esegui il codice e se tutto è stato configurato correttamente, vedrai un messaggio che conferma la creazione del file XML. Il file output.xml
dovrebbe contenere qualcosa di simile:
<?xml version="1.0"?>
<root>
<record>
<name>Alice</name>
<age>30</age>
<city>New York</city>
</record>
<record>
<name>Bob</name>
<age>25</age>
<city>Los Angeles</city>
</record>
<record>
<name>Charlie</name>
<age>35</age>
<city>Chicago</city>
</record>
</root>
Conclusione
Convertire un file CSV in XML con Node.js è un processo semplice grazie ai pacchetti csv-parser
e xmlbuilder2
. Questa tecnica può essere utilizzata in una varietà di applicazioni, come l'integrazione di dati o la migrazione di formati.