Конвертировать CSV в XML
Оберните таблицу CSV в корректный XML: свои имена корневого и строкового тегов, столбцы как элементы или атрибуты, заголовки приведены к допустимым именам тегов.
Перетащите файлы сюда
.csv, .tsv, .txt · до 300 МБ
Больше настроекМеньше настроек
Как конвертировать в XML
- 1
Перетащите файл CSV
Перетащите файл .csv, .tsv или .txt на страницу. Разделитель и кодировка символов определяются по самим байтам.
- 2
Задайте корневой и строковый теги
Выберите, во что оборачивать документ и каждую строку — по умолчанию rows и row, или catalog и product, если этого требует принимающая система.
- 3
Конвертируйте и скачайте XML
Нажмите кнопку и скачайте корректный документ с декларацией и нормальными отступами.
Заголовки столбцов, которые не годятся в имена тегов
В реальных выгрузках встречаются заголовки вроде 2024 sales, order id или вообще пустая ячейка, и ни одно из них не годится в имя тега XML. Если убрать такой столбец, данные пропадут. Поэтому имя исправляется так, как требует XML 1.0: недопустимые символы заменяются на подчеркивания, перед ведущей цифрой добавляется n, а пустые заголовки становятся column_1. Все переименования показываются списком.
Элементы или атрибуты, и когда выбор не действует
Каждый столбец может стать дочерним элементом строки или ее атрибутом. Атрибуты дают компактный документ, но XML-парсеры превращают перевод строки внутри значения атрибута в пробел. Поэтому столбец с многострочным текстом в любом случае записывается как элемент, независимо от настройки. Инструмент показывает, с какими столбцами так поступил.
Экранирование и кодировка, о которых не нужно думать
Амперсанды и угловые скобки в данных экранируются автоматически, кавычки — тоже, если это значение атрибута. Запрещенные в XML управляющие символы удаляются, а их число показывается. Результат всегда в UTF-8 без сигнатуры BOM, с XML-декларацией, которая это указывает, независимо от кодировки исходного CSV.
Без загрузки, без сервера, без копии
Разбор CSV, исправление имен, экранирование значений и сериализация документа выполняются прямо в этой вкладке браузера, в JavaScript-коде, который загружается вместе со страницей. Файл никуда не отправляется, поэтому прайс-лист или выгрузка клиентов остаются на вашем устройстве даже во время конвертации.
Частые вопросы
Можно ли задать имена тегов самому?
Да, оба. Корневой элемент по умолчанию называется rows, каждая запись — row. Любое из этих имен можно заменить на любое допустимое — например, catalog и product или orders и order. Имя, которое XML не примет, например начинающееся с цифры, отклоняется сразу и с подсказкой, как исправить, а не превращается в битый файл.
Столбцы делать элементами или атрибутами?
Элементы — более надежный вариант по умолчанию: в них помещается любой текст, включая переводы строк, и их чаще всего ожидают схемы. Атрибуты дают гораздо более короткий документ и хорошо подходят для коротких идентификаторов, но значение должно быть в одну строку. Выберите тот формат, который ожидает система, читающая файл.
Что будет с заголовком вроде 2024 sales?
По умолчанию он очищается до допустимого тега: пробел превращается в подчеркивание, а перед ведущей цифрой добавляется префикс, получается n2024_sales. Список всех переименованных столбцов показывается явно, чтобы ничего не менялось незаметно для вас. Если важнее остановиться, чем исправлять, переключите обработку неверных имен в режим ошибки.
Мой CSV с точкой с запятой и в Windows-1251. Нужно ли сначала его конвертировать?
Нет. Точка с запятой, табуляция, вертикальная черта и двоеточие проверяются наряду с запятой, а кодировка определяется по сигнатуре BOM или, если ее нет, по строгой проверке UTF-8 с откатом к Windows-1251 или Windows-1252. Любой из параметров можно задать вручную, если автоматика ошиблась.
Сохраняются ли пустые ячейки в результате?
По умолчанию пустая ячейка становится пустым самозакрывающимся элементом. Так каждая запись остается одинаковой формы, и читающей программе проще ее обходить. Если переключить пустые значения в режим пропуска, элемент вообще не записывается, документ становится меньше, но записи приобретают разную структуру.
В какой кодировке записывается XML?
Всегда в UTF-8, без сигнатуры BOM, с соответствующей декларацией в начале. Эту комбинацию ожидают XML-парсеры, и она исключает расхождение между объявленной кодировкой и реальными байтами. Декларацию можно отключить для фрагментов, которые будут встраиваться в более крупный документ.
У меня два столбца с именем id. Что будет?
Второй столбец станет id_2, третий — id_3. Иначе программа, которая обходит дочерние элементы записи, не сможет их различить. Эти переименования показываются в том же списке, что и очищенные имена.
Файл загружается на сервер для конвертации?
Нет. Все работает локально в вашем браузере, без участия сервера и без копии таблицы где-либо еще после закрытия вкладки.