Страницы

вторник, 9 декабря 2014 г.

CSV to XML в командной строке Ubuntu

Достаточно быстрый и простой способ преобразования данных CSV файла в XML, в командной строке Ubuntu возможен с помощью программы Flat File Extractor.

$ sudo apt-get install ffe

Основу простого преобразования данных CSV to XML, составляет схема сопоставления полей, которая задается в конфигурационном файле csv2xml.fferc.

Пример: дан csv-файл pinout.csv из двух полей (номер вывода и его функция) разделённых точкой с запятой.

structure csv2xml {
    type separated ;
    output xml
    record data {
        field pin
        field func
    }
}

output xml {
    file_header "<?xml version=\"1.0\" encoding=\"OTF-8\"?>\n"
    data "<%n>%t</%n>\n"
    record_header "<%r>\n"
    record_trailer "</%r>\n"
    indent " "
}


$ ffe -o pinout.xml -c csv2xml.fferc -s csv2xml pinout.csv
получиться, что-то в этом роде:
...
<data>
 <pin>PA0</pin>
  <func>DATA0</func>
</data>
<data>
 <pin>PA1</pin>
  <func>DATA1</func>
</data>
...

Полученный файл уже можно обрабатывать автоматически XSLT процессором.
$ xsltproc template.xsl pinout.xml -o result.xml


Примечание: как задать табуляцию в виде разделителя, у меня не получилось, поэтому csv-файл с табуляциями (символ \t) был преобразован в файл с разделителями - точка с запятой.

cat pinoutsrc.csv | cut -f 1,8 --output-delimiter=';' > pinout.csv


※※※

Ресурсы


2. Flat file extractor. http://ff-extractor.sourceforge.net/
※※※

Комментариев нет: