Конвертировать XML в CSV
Преобразуйте фид, выгрузку товаров или RSS-файл в табличный CSV — повторяющийся элемент записи находится автоматически, XPath не нужен.
Перетащите файлы сюда
.xml, .rss, .xhtml, .txt · до 300 МБ
Больше настроекМеньше настроек
Как конвертировать в CSV
- 1
Перетащите XML-файл
Перетащите файл .xml или .rss на страницу. Сначала он проверяется: при отсутствии закрывающего тега вы увидите строку и столбец ошибки, а не наполовину заполненную таблицу.
- 2
Подтвердите элемент записи
Повторяющийся элемент находится автоматически и показывается с числом записей, например rss.channel.item с сорока. Если это не тот уровень, который нужен, выберите другой вариант.
- 3
Конвертируйте и скачайте CSV
Нажмите кнопку и сохраните готовую таблицу.
В XML нет строк таблицы, поэтому их приходится искать
По дереву не видно, какой уровень считать записью. Документ обходится до глубины шесть: на каждом пути считаются одноименные соседние элементы, и побеждает самый большой набор. При равенстве выигрывает более глубокий путь, потому что rss.channel.item полезнее, чем rss.channel. Показываются до пяти кандидатов с числом записей по каждому.
Атрибуты, вложенность и повторяющиеся дочерние элементы
Атрибут становится отдельным столбцом с префиксом @, чтобы id у товара не пересекался с дочерним элементом с тем же именем. Дочерние элементы превращаются в столбцы с точечной нотацией до указанной глубины. Все, что глубже, записывается в одну ячейку как JSON. Повторяющиеся дочерние элементы можно склеить в одну строку, пронумеровать по отдельным столбцам или сохранить как JSON.
Пространства имен и опасные документы
Префиксы пространств имен по умолчанию убираются, поэтому dc:title превращается в обычный столбец title, а фид, сочетающий три словаря, все равно дает читаемые заголовки. Документы с пользовательскими сущностями в DOCTYPE отвергаются до парсинга, а не разворачиваются — такие файлы и подвешивают вкладку браузера.
Для конвертации ничего не загружается
Проверка, разбор XML и запись CSV выполняются JavaScript прямо в этой вкладке браузера. Никакая часть документа не отправляется на сервер, не сохраняется и не логируется, а инструмент продолжает работать даже при выключенной сети. Закройте вкладку — и от файла ничего не останется.
Частые вопросы
Как инструмент решает, какой элемент считать записью?
По числу повторов. Каждый путь до глубины шесть проверяется на одноименные соседние элементы, и путь с их максимальным количеством становится уровнем записи. Если два пути набрали одинаковое число, выбирается более глубокий. Остальные варианты видны с их счетчиками, а для необычных документов можно ввести путь вручную.
Куда попадают атрибуты XML?
Каждый атрибут становится столбцом с префиксом @, поэтому атрибут id превращается в @id и не смешивается с дочерним элементом id. Если в выгрузке есть атрибуты, которые не нужны, включите пропуск атрибутов — они исчезнут, а таблица станет уже.
Что происходит с элементами, вложенными в запись?
Они превращаются в столбцы с точечной записью вроде price.currency до выбранного предела глубины. Глубже этого предела все поддерево записывается в одну ячейку как JSON — данные сохраняются, но вместо тысяч почти пустых столбцов вы получаете компактную таблицу.
Почему CSV начинается с метки порядка байтов?
Чтобы Excel по двойному щелчку распознал файл как UTF-8, а не попытался угадать старую кодировку и испортил буквы с диакритикой или кириллицу. Если файл пойдет в скрипт или загрузчик БД, которому BOM мешает, переключитесь на обычный UTF-8 в настройках.
В Excel все оказалось в одном столбце. Что не так?
С файлом все в порядке — Excel делит по разделителю из системной локали, а во многих странах Европы это точка с запятой. Сконвертируйте файл заново, выбрав точку с запятой, или примените к уже открытому файлу «Данные → Текст по столбцам».
Сработает ли это с RSS или Atom-фидом?
Да, это самый простой случай: детектор находит rss.channel.item или соответствующий элемент entry, каждый item превращается в строку, а расширения с префиксами, вроде Dublin Core или media-тегов, становятся обычными столбцами после удаления префиксов.
Почему перед значением, начинающимся со знака равно, появляется кавычка?
Иначе таблица воспримет его как формулу, и значение из неподконтрольного фида можно подделать так, чтобы команда выполнилась при открытии файла. Начальный апостроф обезвреживает такое значение. Обычные отрицательные числа вроде -5 остаются как есть.
В моем файле есть DOCTYPE, и он был отклонен. Почему?
DOCTYPE с объявленными сущностями специально отклоняется. Вложенные сущности могут развернуться в гигабайты текста и повесить вкладку, а внешние — обратиться к файлам в других местах. Удалите объявления сущностей из DOCTYPE, и документ нормально конвертируется.