Преобразовать CSV в XML

Работает на вашем устройстве · Ваш файл никогда не покидает устройство.

Перетащите CSV или вставьте текст — и получите документ XML с элементом <root>, одним элементом <item> на строку и одним дочерним элементом на столбец с именем из заголовка. Разделитель определяется автоматически (запятая, точка с запятой, табуляция, вертикальная черта), поля в кавычках обрабатываются по RFC 4180, метка BOM в начале файла убирается.

Имена столбцов, которые XML не может использовать как имена элементов — с пробелами, символами или начинающиеся с цифры, — приводятся к допустимым через подчёркивания («Unit price» становится Unit_price), так что результат всегда корректен. Значения записываются текстом внутри элементов; атрибутов нет, и документ прост для любого разбора.

Первые 200 строк видны до скачивания, а преобразование целиком выполняется на вашем устройстве.

Как Преобразовать CSV в XML

  1. Перетащите файл CSV или вставьте текст CSV.
  2. Оставьте разделитель на автоопределении или выберите его.
  3. Нажмите «Преобразовать в XML» и просмотрите результат.
  4. Скачайте .xml.

Поддерживаемые форматы и ограничения

Вход
CSV / TSV — файл или вставленный текст
Выход
XML 1.0, UTF-8, <root><item>…</item></root>
Разбор
RFC 4180; разделитель определяется автоматически
Имена
Заголовки приводятся к допустимым именам элементов
Где работает
В браузере — без загрузки на сервер

Не подходит для: Создания XML под конкретную схему (банковский, налоговый или торговый формат) — имена элементов берутся из ваших заголовков, а не из схемы.

Значения записываются ровно как в CSV

XML хранит любое значение как текст, поэтому распознавать числа или true и false здесь незачем, и эта страница такого не предлагает. Каждое значение записывается так, как оно стоит в CSV: 1.50 остаётся 1.50, 1e3 — 1e3, TRUE — TRUE, а слово NULL — NULL. Пустая ячейка даёт пустой элемент вроде <note/>, а ведущие нули, как в 007, сохраняются.

Как заголовки становятся именами элементов

Сначала исправляются повторяющиеся и пустые заголовки: два столбца name становятся <name> и <name_2>, а пустой третий заголовок — <column_3>. Затем каждое имя приводится к допустимому в XML. Total (USD) становится Total__USD_, потому что пробелы и скобки превращаются в подчёркивания, а 1st — _1st. Дефис и точка разрешены, так что e-mail остаётся e-mail, а address.city остаётся одним элементом с таким именем и на вложенные элементы не делится. Заголовки на любой письменности, например кириллицей или по-китайски, сохраняются как написаны.

Если два заголовка в итоге получают одно имя, например "a b" и "a_b", оба записываются как <a_b> внутри каждого <item>. Программа, которая читает элементы по имени, может тогда увидеть только первый, поэтому заранее переименуйте один из них в CSV.

Как читается CSV

Текст читается по тем же правилам, что и в /csv-to-json, где они объяснены на примерах: как работают кавычки, как находится разделитель, как распознаётся кодировка файла и что происходит со строкой, где ячеек больше или меньше, чем в заголовке. В XML недостающая ячейка становится пустым элементом. У ячеек за последним заголовком нет имени элемента, поэтому они пропускаются, а сообщение говорит, в скольких строках они были и где первая из них.

Имена <root> и <item> фиксированы. Если система ждёт другие, например <customers> и <customer>, замените их в текстовом редакторе после скачивания; больше ничего в структуре менять не нужно.

Частые вопросы

Мои файлы загружаются на сервер?
Нет. Преобразование целиком выполняется в вашем браузере, силами вашего же устройства. Файл не покидает компьютер или телефон, а инструмент, которым вы уже один раз воспользовались, работает и без интернета.
Как выглядит структура XML?
Объявление XML, затем <root>, затем на каждую строку <item> с одним элементом на столбец: <item><name>Анна</name><city>Казань</city></item>. Элемент строки всегда называется item.
В моих заголовках есть пробелы — это проблема?
Нет. Имена приводятся к тому, что допускает XML: пробелы и символы становятся подчёркиваниями, а перед ведущей цифрой добавляется подчёркивание. Остальная часть имени не меняется.
Определяется ли разделитель?
Да — запятая, точка с запятой, табуляция и вертикальная черта проверяются по первым строкам, и побеждает тот, что последовательно совпадает. Его можно задать и вручную.

Похожие инструменты

Ещё в разделе Таблицы и данные

Эта страница на других языках: English · العربية · Deutsch · Français · Español · Português · 中文 · हिन्दी · Türkçe · עברית · فارسی · اردو · Bahasa Indonesia · বাংলা