Convertire un file CSV in XML con Node.js

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.

Torna su