Все статьи
Форматы данных

XML-файл — что это такое и чем открыть: структура, примеры

XML простыми словами: что такое XML-файл и как он устроен, чем отличается от HTML и JSON, чем открыть его на Windows и Mac, как создать самому и какие ошибки ломают файл.

20 августа 2026
9 мин чтения
ConvertHub
Обновлено 07.09.2026
#xml#разметка#форматы данных

Нужен прямо сейчас? Инструмент для этой задачи:

XML-файл — это обычный текстовый файл, внутри которого данные размечены тегами. XML (eXtensible Markup Language, «расширяемый язык разметки») — язык этой разметки: каждый кусок информации подписан тегом, и словарь тегов придумываете вы сами, а не разработчик формата. Строка <price>390</price> читается как «цена равна 390», а не как случайное число. За это XML и прижился везде, где данными обмениваются разные системы: программа, читающая файл, узнаёт смысл по тегам и не зависит от порядка колонок, как было бы в таблице без заголовков.

Файл выглядит как текст, открывается любым редактором, специальный софт не нужен. Ловушка в другом: XML — формат строгий. Одна незакрытая скобка или амперсанд без экранирования — и ни одна программа файл не прочитает: парсер останавливается на первой же ошибке. Поэтому ниже не только «чем открыть», но и типовые поломки с починкой.

Чем XML отличается от HTML

Синтаксис общий: угловые скобки, вложенные элементы, атрибуты в кавычках. Разница — в назначении. Набор тегов HTML фиксирован стандартом, и каждый тег описывает показ: p — абзац, img — картинка, a — ссылка. В XML словарь заранее не задан — теги придумывает автор файла под свои данные: <order>, <цена>, <customer>. Браузер при этом ничего не обязан «понимать» — он просто хранит то, что написано.

Строгость тоже разная. Браузер простит HTML незакрытый тег и всё равно соберёт страницу. XML-парсер не прощает ничего: ошибка в одном месте — и не разбирается весь файл. Отсюда частое недоумение: «открыл XML в браузере, а там дерево тегов или сообщение об ошибке, где обещанный документ?» Так и задумано. XML — про данные, а не про отображение.

Третий частый вопрос — отличие от JSON, который решает похожую задачу. Коротко: JSON компактнее и ближе программистам, XML старше, формальнее и до сих пор обязателен там, где его требует принимающая сторона, — маркетплейсы, госсистемы, корпоративные обмены. Развёрнутое сравнение — в статье JSON vs XML.

Структура XML-файла

Документ собирается из пролога, ровно одного корневого элемента и вложенности. Вот файл с заказами интернет-магазина — по нему и пройдёмся:

<?xml version="1.0" encoding="UTF-8"?>
<orders date="2026-08-20">
  <order id="10247" status="shipped">
    <customer email="ivan@example.ru">Иван Петров</customer>
    <items>
      <item sku="A-113" qty="2">
        <name>Кабель USB-C, 1 м</name>
        <price>390</price>
      </item>
      <item sku="B-207" qty="1">
        <name>Зарядное устройство 20 Вт</name>
        <price>890</price>
      </item>
    </items>
    <total currency="RUB">1670</total>
  </order>
</orders>

В примере один заказ с двумя позициями. У <order> служебные поля вынесены в атрибуты (id, status), состав заказа — в повторяющиеся элементы <item>, а название и цена каждого товара — элементы. Сумма в <total> (2 × 390 + 890 = 1670) парсер никак не проверяет: XML следит за разметкой, а не за арифметикой.

Пролог

Первая строка <?xml version="1.0" encoding="UTF-8"?> — декларация: версия стандарта и кодировка. По стандарту она необязательна, но указывайте её всегда: без явной кодировки кириллица превращается в кракозябры уже на этапе чтения файла.

Корневой элемент

Элемент верхнего уровня ровно один — здесь <orders>, и всё остальное лежит внутри него. Два корня подряд — гарантированная ошибка «Extra content at the end of the document», самая частая у тех, кто склеивает две выгрузки в один файл.

Атрибуты против дочерних элементов

Одни и те же данные можно записать двумя способами: атрибутом (<item sku="A-113">) или вложенным элементом (<sku>A-113</sku>). Синтаксически верны оба. Практическое правило: атрибуты — для коротких служебных значений вроде id, статуса, количества; элементы — для всего, что может стать длинным, содержать спецсимволы или потребовать вложенности. Атрибут нельзя повторить, и внутрь него нельзя положить разметку: захотите добавить товару три фотографии — в атрибуте места не будет. Пустые значения записывают самозакрывающимся тегом: <phone/>.

Спецсимволы и CDATA

Пять символов внутри текста обязаны быть экранированы: &lt;, &gt;, &amp;, &quot; и &apos;. Когда экранировать приходится много — например, вы кладёте внутрь XML HTML-код или формулу, — удобнее блок CDATA: парсер читает его как сырой текст и не ищет внутри теги:

<description><![CDATA[Чайник 1,7 л, <b>2200 Вт</b>, фильтр от накипи]]></description>

Чем открыть XML-файл

Сначала определитесь с задачей: посмотреть, что внутри, или работать с файлом — править, проверять, вытаскивать данные. Инструменты для этого разные.

ИнструментЧто даётНюансы
Блокнот (Windows)Уже установлен; короткий файл откроет и даст отредактироватьБез подсветки и поиска по структуре; файл в сотню мегабайт просто не откроет
Браузер (Chrome, Firefox, Edge)Покажет дерево тегов со свёрткой; при ошибке назовёт её и строкуРедактировать нельзя; Chrome пишет ошибку текстом вверху страницы
VS Code, Notepad++Подсветка, свёртка блоков, поиск; большие файлы не проблемаНужно установить, но оба бесплатны
Онлайн-форматтерВыстроит отступы в файле, свёрнутом в одну строку, и покажет первую ошибкуДля конфиденциальных данных берите инструмент с обработкой прямо в браузере

На Windows

Правый клик по файлу → «Открыть с помощью» → браузер или блокнот. Для разового просмотра этого достаточно. Если XML-файлы у вас регулярные — фиды, выгрузки, конфиги, — поставьте VS Code: работать с разметкой без подсветки тяжело, а файлы на десятки мегабайт блокнот и вовсе не откроет.

На Mac

TextEdit откроет XML как обычный текст — посмотреть хватит. Для работы удобнее тот же бесплатный VS Code: интерфейс и горячие клавиши одинаковые с Windows-версией, что выручает, если файлы ходят между двумя платформами.

Если файл большой

Фид на сотню мегабайт — реальный размер для каталога маркетплейса. С ним не справятся ни блокнот, ни браузер: первый зависнет при открытии, второй съест память на построение дерева элементов. VS Code открывает большие файлы с натяжкой — подсветку отключает, а совсем крупные уже не берёт. Для разового «взглянуть, что внутри» хитрость простая: откройте первые строки файла — пролог и структуру видно уже там. Для систематической работы с огромными документами пишут скрипт, который читает файл построчно и не держит весь документ в памяти.

Частный случай: файл пришёл одной строкой без отступов или не открывается из-за ошибки. Прогоните его через онлайн-форматтер XML — он выстроит разметку и покажет, на какой строке сломано. Если цель не посмотреть, а забрать данные, конвертер XML в JSON за секунду разложит файл в структуру, которую удобно читать кодом или загружать в таблицы.

Где встречаются XML-файлы

  • Товарные фиды. Прайс-лист для Яндекс.Маркета — это XML со своим словарём тегов, формат YML. Как он устроен и как собрать фид, который пройдёт валидацию, разобрано в гиде по YML для Яндекс.Маркета.
  • sitemap.xml. Карта сайта, по которой поисковые роботы находят страницы. На любой популярной CMS файл генерируется сам, но открывать и проверять его приходится вручную.
  • Конфигурации. AndroidManifest.xml есть в каждом Android-приложении, pom.xml — у Java-проектов на Maven, .csproj — у проектов Visual Studio. Документы Word и Excel (.docx, .xlsx) — это вообще zip-архивы, внутри которых лежит набор XML-файлов.
  • Обмен между системами. SOAP-интерфейсы банков и госсервисов, RSS-ленты и подкасты, выгрузки из 1С и CRM — всё это XML под капотом.

Достался файл без пояснений — назначение легко угадать по корневому тегу. <urlset> — это карта сайта, <yml_catalog> — прайс-фид для Маркета, <rss> — лента новостей или подкаст. Откройте файл и посмотрите на вторую строку: обычно этого достаточно, чтобы понять, с чем имеете дело.

Типичные ошибки синтаксиса

Парсер останавливается на первой ошибке и сообщает о ней по-английски. Перевод самых частых сообщений — в таблице.

ОшибкаКак проявляетсяКак исправить
Незакрытый тегPremature end of data / no element foundДописать закрывающий тег; одиночный элемент закрыть сразу: <br/>
Разный регистр в паре теговmismatched tagXML различает регистр: <Name> и </name> — разные теги
Амперсанд в текстеThe entity name must immediately follow the «&»Заменить & на &amp; — в том числе в URL с UTM-метками
Скобки в текстеПарсер принимает «<» за начало тегаЭкранировать: &lt; и &gt;
Кириллица без кодировкиКракозябры или not well-formedПересохранить файл в UTF-8 и указать encoding="UTF-8" в прологе; если файл в windows-1251 — честно написать encoding="windows-1251"
Два корневых элементаExtra content at the end of the documentОбернуть всё содержимое в один корень

Лайфхак: ошибку ищет не человек, а инструмент. Форматтер покажет номер строки, и правка займёт минуту вместо получаса со скрещенными глазами. И не путайте проверку синтаксиса с проверкой смысла: файл с тегами <яблоко1> и <яблоко2> синтаксически безупречен, но принимающая система со своей схемой с ним не согласится.

Как создать XML-файл

Понадобится любой текстовый редактор. Скопируйте структуру из примера выше, подставьте свои данные и сохраните файл с расширением .xml в кодировке UTF-8. В блокноте Windows есть классический подвох: если в диалоге «Сохранить как» оставить тип «Текстовые документы», блокнот молча допишет .txt, и получится orders.xml.txt, который программы не увидят. Выбирайте тип «Все файлы» или заключайте имя в кавычки: "orders.xml".

Если исходные данные уже лежат в JSON — из API или из таблицы — каркас удобнее собрать через конвертер JSON в XML, а потом переименовать теги под словарь приёмной стороны. Конвертер перенесёт данные, но не догадается, что Маркет ждёт <offer>, а ваша CRM — <Заказ>; названия тегов сверяйте с документацией той системы, куда файл отправляется.

FAQ

Чем открыть XML-файл без установки программ?

Браузером: перетащите файл в окно Chrome или Firefox — увидите дерево тегов. Короткий файл покажет и блокнот.

Чем XML отличается от JSON?

Синтаксисом и подходом. У XML — теги, атрибуты и схемы-валидаторы; у JSON — объекты и массивы в фигурных скобках. JSON короче и удобнее в коде, XML формальнее и по-прежнему обязателен для фидов, SOAP и формата документов Office. Подробно — в сравнении JSON и XML.

Как конвертировать XML в JSON и обратно?

Готовыми конвертерами: XML → JSON и JSON → XML работают прямо в браузере. Одна тонкость: в JSON нет атрибутов, поэтому конвертер выносит их в отдельные поля. Если атрибуты важны, прогоните сначала пару тестовых файлов и проверьте результат.

Почему XML-файл открывается кракозябрами?

Кодировка файла не совпадает с заявленной. Классика: файл сохранён в windows-1251, а пролог обещает UTF-8 — или кодировка не указана вовсе. Пересохраните файл в UTF-8 и подпишите это в прологе.

Можно ли открыть XML в Excel?

Да: «Данные» → «Получить данные» → «Из файла» → «Из XML». Excel построит таблицу по повторяющимся элементам. С глубокой вложенностью справляется неидеально — тогда проще сначала перевести файл в JSON и вытащить нужный уровень.

Чем «файл открывается» отличается от «файл валиден»?

Это два уровня проверки. Well-formed — синтаксическая корректность: теги закрыты, корень один, спецсимволы экранированы; это проверяет любой форматтер. Valid — соответствие схеме: у конкретной системы есть XSD или DTD, где расписано, какие теги обязательны и в каком порядке идут. Файл легко проходит форматтер и проваливается у приёмщика — поэтому перед отправкой фида или выгрузки сверяйтесь с требованиями принимающей стороны, а не только с синтаксисом.

Итого: посмотреть — браузером, править — VS Code, чинить и форматировать — форматтером, забирать данные — конвертером в JSON. Формат старше JSON, но фиды, sitemap и Office-документы никуда не денутся ещё долго, так что один раз разобраться в структуре точно окупится.

Попробуйте эти инструменты

Похожие статьи