xml2csv converts XML to CSV.
You can easily define mappings for converts using XPath.
$ xml2csv -i input.xml -m mapping.json -o output.csv
The arguments are as follows.
Usage: xml2csv [flags]
Flags
-i, --input string XML input file path or directory or url
-m, --mapping string XML to CSV mapping file path or url
-o, --output string CSV output file path
-b, --bom CSV with BOM
-h, --help Help
XML and mapping files can be specified by URL.
xml2csv -i https://github.com/onozaty/xml2csv/raw/master/testdata/rss.xml -m https://github.com/onozaty/xml2csv/raw/master/mapping/rss.json -o output.csv
The conversion mapping definition is written in JSON.
Specify the position on the XML with XPath.
{
"rowsPath": "//item",
"columns": [
{
"header": "title",
"valuePath": "/title"
},
{
"header": "link",
"valuePath": "/link"
},
{
"header": "description",
"valuePath": "/description"
}
]
}
rowsPath
: XPath to get as a rows.columns
: Definition of each column.header
: CSV header.valuePath
: XPath to get as a value.useEvaluate
: Specifytrue
when using an expression withvaluePath
. For example, when usingsum()
ornot()
,boolean()
.
antchfx/xpath is used in xml2csv.
See below for supported XPath.
Please refer to the sample below.
You can download the binary from the following.
MIT