Как я могу преобразовать файл CSV в XML?
Есть ли какое-либо программное обеспечение для Ubuntu?
На веб-сайте сообщества , посвященном конвертации, есть ссылка на инструмент командной строки, который называется csv2xml . Поскольку он не поддерживается, вы можете выбрать другой вариант.
Также есть упоминание о java-инструменте csv2xml (предупреждение: сайт на немецком языке) и инструменте командной строки под названием ff-extractor .
Ссылка также содержит ссылки на Python, Perl, PHP, XSLT, но это означает, что вам нужно кодировать конвертер самостоятельно.
Я - большой поклонник BaseX
лет, который, кажется, имеет возможность импорта:
http://docs.basex.org/wiki/CSV_Module
<час>Мог бы указать, что, по-видимому, легче использовать веб-приложение:
https://webapps.stackexchange.com/q/123959/24327
, Который составляет плагин или расширение браузера, который работает с листами Google.
я чувствую Вашу боль, потому что это - на вид простая утилита, которая должна быть, ну, в общем, доступной через Кв.
Я бы предложил вам или кому-то написать коды на Python. Python легко выучить и легко решить вашу проблему. Он имеет как CSV-модуль , так и XML-модули . Мое предложение учитывает, что вам может потребоваться иметь собственные имена для элементов XML или иметь другие сложные требования (например, преобразование последнего столбца CSV в атрибут последнего, кроме одного столбца).
В Интернете есть множество учебников по Python.
Когда Вы знаете формат csv
файл и структура Вам нужно в xml
файл, это довольно просто для создания сценария, который может обработать преобразование.
Возьмите файл simple.csv
:
Jack,35,United States
Jill,22,United Kingdom
Можно создать следующее xml
файл:
<?xml version="1.0"?>
<Customers>
<Customer>
<Name>Jack</Name>
<Age>35</Age>
<Country>United States</Country>
</Customer>
<Customer>
<Name>Jill</Name>
<Age>22</Age>
<Country>United Kingdom</Country>
</Customer>
</Customers>
Со следующим сценарием:
#!/bin/bash
file_in="simple.csv"
file_out="simple.xml"
echo '<?xml version="1.0"?>' > $file_out
echo '<Customers>' >> $file_out
while IFS=$',' read -r -a arry
do
echo ' <Customer>' >> $file_out
echo ' <Name>'${arry[0]}'</Name>' >> $file_out
echo ' <Age>'${arry[1]}'</Age>' >> $file_out
echo ' <Country>'${arry[2]}'</Country>' >> $file_out
echo ' </Customer>' >> $file_out
done < $file_in
echo '</Customers>' >> $file_out
Даже если Вы никогда не кодировали прежде, я думаю, что это должно быть просто в использовании и изменить. Файл читается линию за линией в while
цикл.
IFS
внутренний полевой спецификатор. IFS=$','
объявляет, что значение разделителя полей является запятой. Это стандартно для файла CSV, но он может быть изменен по мере необходимости для соответствия входному формату файла.
-r
аргумент read
команда говорит этому рассматривать любые обратные косые черты в Вашем файле как часть Ваших данных, а не как Escape для следующего специального символа.
-a arry
аргумент помещает каждый столбец Вашего файла в массив (названный arry
). Столбцы в этом примере являются именем, возрастом, страной. Другими словами, значения между запятыми. Таким образом, каждый столбец в строке хранится в массиве.
Затем необходимый текст для xml
просто перенесен вокруг значений и xml
строка добавляется к выходному файлу с echo
.
Довольно удобное для пользователя (т.е. легкий для болванов как я) решение CSV к проблеме преобразования XML состоит в том, чтобы использовать хороший межплатформенный XML-редактор, который имеет эту встроенную функцию. (Я использовал его и в соответствии с Ubuntu и в соответствии с MAC OSX 10.10.5; это также имеет исполняемый файл Windows.)
Как упомянуто, это - XML-редактор, но это включает CSV-to-XML (и Excel-to-XML) "импорт" в его главном меню:
Это преобразовало файл CSV 31 МБ для меня (дамп от базы данных библиотеки 20 000 записей) приблизительно за 15 секунд, дав мне правильно построенный XML-файл, чтобы сохранить и управлять.
Как редактор это имеет много других желанных функций (подробный в ссылке, выше). Я не могу найти упоминание ни о какой лицензии на него, но это включено в "README":
XMLSpear является бесплатным программным обеспечением для персонального использования.
Отправьте yor отклик xmlspear@donkeydevelopment.com или на форумеhttp://donkeydevelopment.com/forums
.Коммерческое использование должно быть утверждено donkeydevelopment.
Просто пошлите электронное письмо xmlspear@donkeydevelopment.com с подчиненным "запросом лицензии".
readme также услужливо включает содержание для .desktop файла.
Делает задание хорошо для меня в соответствии с Ubuntu 18.04 LTS (Gnome).