Как я могу преобразовать файл CSV в XML?

Как я могу преобразовать файл CSV в XML?

Есть ли какое-либо программное обеспечение для Ubuntu?

8
задан 3 February 2015 в 14:19

5 ответов

На веб-сайте сообщества , посвященном конвертации, есть ссылка на инструмент командной строки, который называется csv2xml . Поскольку он не поддерживается, вы можете выбрать другой вариант.

Также есть упоминание о java-инструменте csv2xml (предупреждение: сайт на немецком языке) и инструменте командной строки под названием ff-extractor .

Ссылка также содержит ссылки на Python, Perl, PHP, XSLT, но это означает, что вам нужно кодировать конвертер самостоятельно.

7
ответ дан 23 November 2019 в 05:25

Я - большой поклонник BaseX лет, который, кажется, имеет возможность импорта:

http://docs.basex.org/wiki/CSV_Module

<час>

Мог бы указать, что, по-видимому, легче использовать веб-приложение:

https://webapps.stackexchange.com/q/123959/24327

, Который составляет плагин или расширение браузера, который работает с листами Google.

я чувствую Вашу боль, потому что это - на вид простая утилита, которая должна быть, ну, в общем, доступной через Кв.

0
ответ дан 23 November 2019 в 05:25

Я бы предложил вам или кому-то написать коды на Python. Python легко выучить и легко решить вашу проблему. Он имеет как CSV-модуль , так и XML-модули . Мое предложение учитывает, что вам может потребоваться иметь собственные имена для элементов XML или иметь другие сложные требования (например, преобразование последнего столбца CSV в атрибут последнего, кроме одного столбца).

В Интернете есть множество учебников по Python.

0
ответ дан 23 November 2019 в 05:25

Когда Вы знаете формат 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.

10
ответ дан 23 November 2019 в 05:25

Довольно удобное для пользователя (т.е. легкий для болванов как я) решение CSV к проблеме преобразования XML состоит в том, чтобы использовать хороший межплатформенный XML-редактор, который имеет эту встроенную функцию. (Я использовал его и в соответствии с Ubuntu и в соответствии с MAC OSX 10.10.5; это также имеет исполняемый файл Windows.)

XMLSpear

Как упомянуто, это - XML-редактор, но это включает CSV-to-XML (и Excel-to-XML) "импорт" в его главном меню:

enter image description here

Это преобразовало файл 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).

1
ответ дан 23 November 2019 в 05:25

Другие вопросы по тегам:

Похожие вопросы: