csv-to-xml is an easy-to-use library that quickly converts any CSV data in a string or file to its equivalent XML representation.
data.csv
Color,Maximum Speed,Age
red,120,2
blue,150,4;index.js
import csvToXml from 'csv-to-xml';
import fs from 'fs/promises';
const csv = await fs.readFile('data.csv', {
encoding: 'utf-8',
});
const xml = csvToXml(csv, {
headerList: ['color', 'maxSpeed', 'age'],
});
console.log(xml);<row>
<color>red</color>
<maxSpeed>120</maxSpeed>
<age>2</age>
</row>
<row>
<color>blue</color>
<maxSpeed>150</maxSpeed>
<age>4</age>
</row>Takes string containing CSV data and returns string containing equivalent XML data.
-
eol: character to be treated as end of a line. If unspecified, EOL character will be auto-detected.Type:
string
Default:undefined -
separator: character used to separate each CSV column.Type:
string
Default:',' -
rowName: name given to XML element wrapping column XML elements.Type:
string
Default:'row' -
headerList: List of custom header names to use for the CSV.Type:
string[]
Default:[] -
header: Whether the CSV data contains a header row or not.Type:
boolean
Default:true -
indentation: Number of spaces used to indent the XML output. A string like\tor' 'can also be passed.Type:
number | string
Default:4 -
quotes: If a column contains the separator character, you can use a quote charactor to wrap the column content, e.g., "Coding, Beauty" won't be split into two columns during parsing.Type:
'single' | 'double' | 'all' | 'none' | RegExp'single': use single quotes'double': use double quotes'all': use single and double quotes'none': ignore quotes - treat as part of CSV'RegExp': custom regex pattern, e.g.,/[\(|\)]/for column enclosed with(and).
Default:
'none'