Convertire un file CSV in XML con Node.js

In questo articolo vedremo come convertire un file CSV in XML utilizzando Node.js.

Node.js di Gabriele Romanato

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.

Commenti