Перейти к инструменту
ViewCSV
Без загрузки на сервер

Конвертация CSV в XML

orders.csv· ПРИМЕР15 строк · 8 столбцов
Значения как
<?xml version="1.0" encoding="UTF-8"?>
<rows>
  <row>
    <order_id>001041</order_id>
    <customer>Мария Волков</customer>
    <city>Санкт-Петербург</city>
    <product>Notebook A5</product>
    <quantity>5</quantity>
    <unit_price>145.75</unit_price>
    <order_date>2026-01-11</order_date>
    <status>pending</status>
  </row>
  <row>
    <order_id>001042</order_id>
    <customer>Иван Волков</customer>
    <city>Москва</city>
    <product>Desk lamp</product>
    <quantity>6</quantity>
    <unit_price>108.80</unit_price>
    <order_date>2026-02-13</order_date>
    <status>pending</status>
  </row>
  <row>
    <order_id>001043</order_id>
    <customer>Наталья Иванов</customer>
    <city>Самара</city>
    <product>Chair, ergonomic</product>
    <quantity>7</quantity>
    <unit_price>15.85</unit_price>
    <order_date>2026-03-21</order_date>
    <status>refunded</status>
  </row>
  <row>
    <order_id>001044</order_id>
    <customer>Михаил Кузнецов</customer>
    <city>Нижний Новгород</city>
    <product>Coffee beans 1kg</product>
    <quantity>6</quantity>
    <unit_price>85.33</unit_price>
    <order_date>2026-04-12</order_date>
    <status>pending</status>
  </row>
  <row>
    <order_id>001045</order_id>
    <customer>Михаил Морозов</customer>
    <city>Омск</city>
    <product>USB-C cable</product>
    <quantity>7</quantity>
    <unit_price/>
    <order_date>2026-05-04</order_date>
    <status>paid</status>
  </row>
  <row>
    <order_id>001046</order_id>
    <customer>Иван Морозов</customer>
    <city>Москва</city>
    <product>Desk lamp</product>
    <quantity>1</quantity>
    <unit_price>57.41</unit_price>
    <order_date>2026-06-18</order_date>
    <status>refunded</status>
  </row>
  <row>
    <order_id>001047</order_id>
    <customer> Мария Попов </customer>
    <city>Новосибирск</city>
    <product>USB-C cable</product>
    <quantity>7</quantity>
    <unit_price>194.44</unit_price>
    <order_date>2026-07-15</order_date>
    <status>shipped</status>
  </row>
  <row>
    <order_id>001048</order_id>
    <customer>Елена Петров</customer>
    <city>Новосибирск</city>
    <product>USB-C cable</product>
    <quantity>4</quantity>
    <unit_price>159.07</unit_price>
    <order_date>2026-08-02</order_date>
    <status>refunded</status>
  </row>
  <row>
    <order_id>001049</order_id>
    <customer>Елена Кузнецов</customer>
    <city>Омск</city>
    <product>USB-C cable</product>
    <quantity>3</quantity>
    <unit_price>119.82</unit_price>
    <order_date>2026-09-22</order_date>
    <status>paid</status>
  </row>
  <row>
    <order_id>001050</order_id>
    <customer>Елена Новиков</customer>
    <city>Санкт-Петербург</city>
    <product>Desk lamp</product>
    <quantity>8</quantity>
    <unit_price>39.58</unit_price>
    <order_date>2026-01-03</order_date>
    <status>shipped</status>
  </row>
  <row>
    <order_id>001051</order_id>
    <customer>Михаил Фёдоров</customer>
    <city>Нижний Новгород</city>
    <product>Notebook A5</product>
    <quantity>8</quantity>
    <unit_price>24.52</unit_price>
    <order_date>2026-02-12</order_date>
    <status>paid</status>
  </row>
  <row>
    <order_id>001052</order_id>
    <customer>Сергей Соколов</customer>
    <city>Казань</city>
    <product>Chair, ergonomic</product>
    <quantity>8</quantity>
    <unit_price>75.43</unit_price>
    <order_date>2026-03-06</order_date>
    <status>paid</status>
  </row>
  <row>
    <order_id>001053</order_id>
    <customer>Анна Фёдоров</customer>
    <city>Нижний Новгород</city>
    <product>Notebook A5</product>
    <quantity>9</quantity>
    <unit_price>149.13</unit_price>
    <order_date>2026-04-10</order_date>
    <status>shipped</status>
  </row>
  <row>
    <order_id>001054</order_id>
    <customer>Анна Смирнов</customer>
    <city>Екатеринбург</city>
    <product>Notebook A5</product>
    <quantity>2</quantity>
    <unit_price>18.09</unit_price>
    <order_date>2026-05-20</order_date>
    <status>refunded</status>
  </row>
  <row>
    <order_id>001043</order_id>
    <customer>Наталья Иванов</customer>
    <city>Самара</city>
    <product>Chair, ergonomic</product>
    <quantity>7</quantity>
    <unit_price>15.85</unit_price>
    <order_date>2026-03-21</order_date>
    <status>refunded</status>
  </row>
</rows>

15 строк · 1 файл

Откройте или вставьте CSV-файл и получите корректный (well-formed) XML: корневой элемент, по элементу строки на каждую запись и каждое значение в виде дочернего элемента или атрибута. Заголовки, которые не являются допустимыми именами XML, например Order ID или 2024 total, переименовываются, и каждое переименование показывается в списке. Файл конвертируется в вашем браузере и никогда не загружается на сервер.

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

  1. Нажмите Открыть файл, перетащите на инструмент файл .csv, .tsv или .txt или выберите Вставить. Если столбцы выглядят неправильно, проверьте разделитель и кодировку в разделе Параметры импорта.
  2. Задайте Корневой элемент и Элемент строки (по умолчанию rows и row) так, как ожидает принимающая система.
  3. Выберите Значения как, обработку пустых значений, Отступы и декларацию, затем нажмите Копировать или Скачать XML.

Если программа, читающая файл, ожидает определённые имена тегов, сначала переименуйте столбцы CSV в инструменте «Переименование и перестановка столбцов CSV», чтобы автоматическое переименование не понадобилось.

Настройки структуры XML

Дочерние элементыВариант по умолчанию: <row><Customer>Smith &amp; Sons</Customer>…</row>. Сохраняет переносы строк в значениях и подходит для большинства программ импорта.
АтрибутыПо одному самозакрывающемуся элементу на строку: <row Customer="Smith &amp; Sons" …/>. Компактно; табуляции и переносы строк в значениях записываются как &#9;, &#10; и &#13;, чтобы парсер их сохранил.
Пропускать пустые значенияПо умолчанию выключено, и пустая ячейка становится пустым элементом вроде <Ship_date/>. Если включить, элемент или атрибут в этой строке пропускается.
Отступы2 пробела (по умолчанию), 4 пробела или Без отступов (сжато) — тогда весь документ записывается в одну строку.
Добавить XML-декларациюПо умолчанию включено: первая строка — <?xml version="1.0" encoding="UTF-8"?>. Отключите, если XML будет вставлен в другой документ.

Имена корневого элемента и элемента строки проходят те же правила, что и заголовки; пустое или недопустимое значение заменяется на rows или row либо получает в начале подчёркивание.

Как названия столбцов становятся именами XML

  • Пробелы превращаются в _, как и любые символы, кроме букв, цифр, ., - и _: Total (EUR) → Total__EUR_, e-mail:work → e-mail_work. Двоеточия заменяются, поэтому префиксы пространств имён не появляются.
  • Если имя начинается с цифры, . или -, в начало добавляется подчёркивание (2024 total → _2024_total); то же происходит с именами, которые начинаются с xml в любом регистре, — это сочетание зарезервировано в XML (xml_ref → _xml_ref).
  • Если два заголовка в итоге получили одинаковое имя, ко второму добавляется _2 (a b и a_b → a_b, a_b_2). Имена XML чувствительны к регистру, поэтому Name и name остаются разными.
  • Буквы любой письменности сохраняются: Größe, 価格 и Цена — допустимые имена XML. Пустой заголовок сначала становится Column 7, затем Column_7.
  • Каждое переименование показано под настройками в виде old → new, а уведомление над предпросмотром сообщает их число.

Как записываются значения

  • В тексте элементов экранируются &, < и >, в атрибутах — ещё и ". В остальном значения записываются в точности как в CSV: 00731 сохраняет нули, а типы не угадываются.
  • XML 1.0 запрещает большинство управляющих символов (U+0000–U+001F, кроме табуляции, перевода строки и возврата каретки), а также U+FFFE, U+FFFF и непарные суррогаты, даже в экранированном виде. Они удаляются, а число затронутых значений показывается.
  • Запятые, кавычки и переносы строк в кавычках читаются по RFC 4180; перенос строки внутри дочернего элемента остаётся настоящим переносом строки.
  • Результат всегда в кодировке UTF-8.

Если XML-парсер или импорт не принимает файл

  • Программа импорта не находит поле. Скорее всего, его переименовали. Проверьте список под настройками и переименуйте столбец в CSV или поправьте сопоставление полей в принимающей системе.
  • Парсер сообщает об ошибке кодировки. Откройте исходный файл в его настоящей кодировке (например, Windows-1251) через параметры импорта: XML будет корректным UTF-8, только если CSV был правильно раскодирован.
  • Всё оказалось в одном элементе. Разделитель определён неверно; выберите запятую, точку с запятой, табуляцию или вертикальную черту в параметрах импорта.
  • Нужны CDATA, пространства имён или схема. Конвертер записывает только простые элементы и атрибуты; добавьте это на следующем шаге.

Ограничения и конфиденциальность

Файлы до 25 МБ, 100 000 строк или 2 млн ячеек открываются с живым предпросмотром первых 200 строк. Бо́льшие файлы конвертируются в потоковом режиме: файл читается частями дважды (сначала чтобы измерить столбцы, затем чтобы записать результат), уведомление сообщает, что скачанный файл охватывает весь файл, а кнопки Копировать нет. Один выходной файл ограничен 4 ГБ.

Конвертация идёт в фоновом обработчике в этой вкладке, поэтому страница не зависает, а кнопка Отмена её останавливает. CSV никогда не отправляется на сервер.

Пример: выгрузка заказов с заголовками, которые нужно переименовать

Выгрузка заказов с пробелами и скобками в заголовках, амперсандом, угловыми скобками и пустой датой, преобразованная с настройками по умолчанию. Три заголовка переименованы; пустой Ship date становится <Ship_date/>.

CSV
Order ID,Customer,Total (EUR),Ship date
10071,"Smith & Sons",249.00,2025-02-03
10072,"Café <Lumière>",18.50,
XML
<?xml version="1.0" encoding="UTF-8"?>
<rows>
  <row>
    <Order_ID>10071</Order_ID>
    <Customer>Smith &amp; Sons</Customer>
    <Total__EUR_>249.00</Total__EUR_>
    <Ship_date>2025-02-03</Ship_date>
  </row>
  <row>
    <Order_ID>10072</Order_ID>
    <Customer>Café &lt;Lumière&gt;</Customer>
    <Total__EUR_>18.50</Total__EUR_>
    <Ship_date/>
  </row>
</rows>

Вопросы и ответы

Почему изменилось название моего столбца?

Имена элементов XML не могут содержать пробелы и большинство знаков препинания, не могут начинаться с цифры и с xml. Конвертер вносит минимальное изменение, которое даёт допустимое уникальное имя, и показывает каждое такое изменение.

Что выбрать — элементы или атрибуты?

Используйте дочерние элементы, если принимающая система не требует атрибутов. Элементы сохраняют переносы строк как есть, а в значениях атрибутов парсеры XML нормализуют пробельные символы — поэтому конвертер кодирует табуляции и переносы строк ссылками на символы.

Получают ли числа и даты типы?

Нет. В XML нет встроенных типов значений, поэтому каждое значение записывается как текст из CSV. Типы задаёт схема или программа, которая читает файл.

Стандарты и справочные материалы