Конвертировать XML в Markdown онлайн бесплатно

Конвертируйте файлы XML в Markdown онлайн бесплатно. Загрузите файл и сразу получите чистый результат, готовый для LLM. Без регистрации, до 50 МБ, ничего не сохраняется.

XML в Markdown: теги долой, иерархия остаётся

У XML есть привычка, которой нет ни у одного другого формата: он записывает имя каждого элемента дважды. Один раз — чтобы открыть, второй — чтобы закрыть. Добавьте префиксы пространств имён, атрибуты, отступы, делающие всё это читаемым, — и вы регулярно будете получать файл, в котором теги весят больше, чем содержимое, которое они оборачивают. Каталог товаров на 200 позиций может растянуться на тысячи строк и при этом содержать от силы полторы страницы реальной информации.

Конвертация XML в Markdown сохраняет дерево и убирает церемонии. Вложенность элементов превращается в уровни заголовков, повторяющиеся соседние элементы — в списки или таблицы, а угловые скобки исчезают. Загрузите файл .xml выше — и через несколько секунд получите результат: бесплатно, без регистрации, потолок 50 МБ, ничего не сохраняется.

Во что превращается дерево элементов

Конвертер обходит документ и переводит каждую конструкцию:

  • Элементы-контейнеры становятся заголовками. Элемент с дочерними элементами, но без собственного текста — это раздел. Его глубина в дереве задаёт уровень заголовка, так что корпоративная схема с пятью уровнями вложенности приходит в виде документа с правильной структурой разделов.
  • Листовые элементы становятся подписанными значениями. <author>Ursula Le Guin</author> читается как author: Ursula Le Guin. Одно имя вместо двух, и никаких скобок.
  • Повторяющиеся соседние элементы становятся списками или таблицами — об этом ниже, потому что именно здесь основная выгода.
  • Смешанное содержимое сохраняется в строке. Это случай, когда текст и дочерние элементы перемежаются, как в <para>См. <ref>приложение</ref> для подробностей</para>. Наивные конвертеры разрывают это на фрагменты, и предложение теряется. Оно должно пройти одной читаемой строкой с сохранённой ссылкой.
  • Комментарии, инструкции обработки и XML-декларация удаляются. Ничто из этого не является содержимым.

Атрибуты: то, что теряют, не замечая

XML хранит данные в двух местах — между тегами и внутри них. Текст элементов очевиден. Атрибуты легко упустить, и многие наивные извлекатели молча их выбрасывают. Это нормально, когда атрибуты — метаданные вроде id="4471". И это катастрофа, когда они — полезная нагрузка.

А это встречается часто. <price currency="GBP">49.99</price> без валюты бессмысленно. Форматы конфигурации ещё хуже — Maven, Ant, Spring, манифесты Android и файлы app.config из .NET часто кладут в атрибуты почти всё, так что извлечение только текста элементов из такого файла возвращает документ, структурно корректный и почти полностью пустой. Если вы конвертировали конфигурационный файл и вывод выглядит подозрительно коротким — причина в этом.

В Markdown-выводе атрибуты должны стоять рядом с элементом, к которому относятся, а не исчезать — как короткое уточнение рядом со значением или как дополнительные колонки, когда элемент входит в повторяющийся набор. Сверьте первый экран вывода с исходником, прежде чем доверять ему что-то важное. Десять секунд беглого просмотра лучше, чем сбитый с толку разговор с моделью потом.

Повторяющиеся элементы становятся таблицами

Лучшая для XML форма — родитель со множеством одинаковых детей: элементы <item> в RSS-ленте, <row> в выгрузке из базы данных, записи <employee> в HR-дампе. У каждого ребёнка одни и те же вложенные элементы в одном и том же порядке.

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

Схема деградирует, когда записи неровные — необязательные элементы есть у одних детей и отсутствуют у других, или один ребёнок содержит вложенный блок, которого нет у остальных. Вы получите пропуски или вложенную часть, вытолкнутую под таблицу. Если данные по-настоящему прямоугольные, экспорт в CSV и конвертер CSV в Markdown дадут более чистые таблицы. А если источник имеет форму JSON, а не тегов, конвертер JSON в Markdown решает ту же задачу с другой стороны.

Пространства имён, конверты и корпоративный шум

Реальный XML редко бывает чистым. Три вещи раздувают его сверх информационного содержания:

  • Пространства имён. Декларации xmlns и префиксы вроде soap:, xsi:, atom: или dc: существуют, чтобы предотвратить коллизии имён между словарями. Читателю они не говорят ничего. При конвертации префиксы отбрасываются, так что <dc:creator> читается как creator. Единственный случай, когда об этом стоит думать, — когда два пространства имён действительно используют одно локальное имя для разных вещей; редкость, но проверьте, если вы объединяете словари.
  • SOAP-конверты. Ответ веб-сервиса заворачивает нужную вам часть в Envelope и Body, зачастую плюс заголовки, набитые токенами безопасности и данными маршрутизации. После конвертации вы получаете документ, где полезная нагрузка наконец видна, а не закопана на четыре уровня внутрь шаблонного кода, который приходится мысленно пролистывать.
  • Ссылки на схемы. xsi:schemaLocation, декларации DTD и атрибуты валидации описывают, как файл нужно проверять, а не что в нём сказано. Для любых задач на этой странице — шум.

RSS- и Atom-ленты находятся на дружелюбном конце спектра. Они однородны, неглубоки и конвертируются в чистый список датированных записей — разумный способ отдать модели месяц постов из блога. Учтите, что описания в лентах обычно содержат HTML, экранированный внутри XML, — он придёт в ваш вывод как разметка; прогоните его через конвертер HTML в Markdown, если нужен чистый результат, или используйте Web2Txt, чтобы забрать страницы как следует.

Когда стоит оставить сырой XML

Прямой ответ, поскольку большинство страниц, продающих конвертеры, его не дают: модели читают XML нормально. Он многословен, но однозначен и очень хорошо представлен в обучающих данных. Конвертация — это выбор, а не требование.

Оставьте как есть, когда вы просите XPath-выражения, XSLT-таблицу стилей, парсер или схему — всё, где модель должна воспроизводить точные имена элементов, префиксы пространств имён и различие между атрибутом и элементом. Markdown намеренно сглаживает ровно эти детали. Вместо этого вставьте показательный фрагмент настоящего файла.

Конвертируйте, когда документ должен прочитать человек, когда нужно быстро понять незнакомую схему или когда сырой файл состоит в основном из тегов, а контекста не хватает. Это реальные выигрыши. Всё остальное — дело вкуса.

XML, о котором вы не знали, что это XML

Немало форматов, которые вы считаете бинарными, внутри — XML в ZIP-архиве. Переименуйте .docx в .zip, распакуйте — и найдёте document.xml плюс кучу файлов связей. С EPUB та же история: XHTML-документы содержимого и XML-манифест пакета в архиве. То же самое с .pptx и с .xlsx.

Можно распаковать такой файл и конвертировать XML вручную. Не надо — внутренняя разметка полна стилевых прогонов, отслеживания правок и инструкций вёрстки, в которых тонет текст. Используйте Word в Markdown или EPUB в Markdown — они знают, какие части этого XML являются содержимым, а какие — инструкциями форматирования. Эта страница для XML, который вам отдали именно как XML: ленты, выгрузки, ответы API, конфигурация, обмен данными.

Часто задаваемые вопросы

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

Загрузите .xml выше — и структура документа отобразится на Markdown: иерархия элементов станет уровнями заголовков, повторяющиеся соседние элементы — списками или таблицами. Бесплатно, до 50 МБ на файл, без регистрации. Форма документа сохраняется — в этом отличие от уплощения в текст.

Иерархия элементов превращается в уровни заголовков?

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

Что происходит с префиксами пространств имён?

Они отбрасываются. Заголовок вида dc:title или tei:head человеку не говорит ничего, а модели — ещё меньше, поэтому префиксы снимаются и используется локальное имя элемента. Если два пространства имён в одном документе определяют одинаковое локальное имя, они сольются — редкость, но стоит взглянуть, если заголовки кажутся продублированными.

Годится ли это для конвертации DocBook или DITA?

Для первого прохода — да. Проза, разделы, списки и строчные выделения переносятся хорошо, потому что эти форматы размечают их явно. Условная профилизация, ссылки на содержимое, включения сущностей и разрешение перекрёстных ссылок не выживают — а это ровно те части, ради которых формат и использовали, и никакой универсальный конвертер их не разрешит.

Что выбрать для большого XML-корпуса?

В большинстве случаев — текст. Если вы строите эмбеддинги по тысячам записей, синтаксис заголовков — накладные расходы, повторяющиеся в каждом чанке без всякой пользы для поиска. Markdown оправдан, когда человек или модель будут читать один документ и им нужно понимать, где какие разделы.

Вариант с плоским текстом и остальные инструменты

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

Если XML — один файл в проекте: конфигурация, дескриптор сборки, фикстура — конвертация его в одиночку даёт модели данные без окружающего кода. Конвертер репозитория GitHub в текст и конвертер локального каталога позволяют взять XML и код, который его использует, вместе — обычно это более полезная единица. File2Txt обрабатывает все поддерживаемые форматы в одном месте, а руководство по подготовке файлов для LLM излагает общие принципы.

Repo2Txt создаёт и поддерживает v12hero — независимый разработчик, который делает нативные и веб-приложения с приоритетом приватности.