Форматтер XML

Минифицированные XML-дампы из SOAP-сервисов, RSS-лент и экспортов конфигов нечитаемы в одну строку. Этот форматтер разбирает документ, перестраивает его с единообразными отступами (2 или 4 пробела, табуляции или без отступов для минифицированного вывода), сохраняет порядок атрибутов и секции CDATA и сообщает о любой проблеме правильной структуры с точной строкой и столбцом, чтобы вы могли исправить несовпадающие теги без поиска.

Как форматировать XML

  1. 1

    Вставьте XML

    Любой длины, любой кодировки; объявление сохраняется.

  2. 2

    Выберите отступ

    Пробелы (2 или 4), табуляции или минификация.

  3. 3

    Отформатируйте

    Парсер строит DOM, затем заново сериализует с единообразными отступами.

  4. 4

    Скопируйте результат

    Вывод: корректный XML, готовый к вставке в логи или документацию.

Что сохраняет форматирование

  • Объявление XML (<?xml version="1.0" encoding="UTF-8"?>) сохраняется дословно.
  • Объявления DOCTYPE и внутренние подмножества сохраняются.
  • Инструкции обработки (<?xml-stylesheet ?>) держатся на своей строке.
  • Комментарии на своей строке или встроенно в зависимости от контекста.
  • Секции CDATA сохраняются точно, включая пробелы внутри.
  • Значения атрибутов перезаключаются в двойные кавычки, если в них нет двойных кавычек, иначе в одинарные.
  • Ссылки на сущности вроде &amp;, &lt;, &gt; оставляются как есть, если вы не включите полное раскрытие сущностей.

Примеры отступов

Ввод (минифицированный):

<books><book id="1"><title>1984</title><author>George Orwell</author></book></books>

Отформатировано (2 пробела):

<books>
  <book id="1">
    <title>1984</title>
    <author>George Orwell</author>
  </book>
</books>

Частые ошибки, которые ловит инструмент

Ошибка Исправление
Несовпадающий закрывающий тег Согласуйте имена открытия и закрытия
Незакрытый элемент Добавьте закрывающий тег
Недопустимый символ в имени тега Имена тегов должны начинаться с буквы или подчеркивания
Дублирующиеся атрибуты на одном элементе Удалите дубликат
Некорректный CDATA Проверьте пару <![CDATA[ и ]]>
Неэкранированные < или & в тексте Используйте &lt; или &amp;

Правильно сформированный против валидного

  • Правильно сформированный XML следует синтаксическим правилам: сбалансированные теги, допустимые символы, правильная вложенность. Форматтер это проверяет.
  • Валидный XML дополнительно соответствует схеме (DTD или XSD). Для этого используйте валидатор XSD.

XML-документ может быть правильно сформированным, не будучи валидным, но не наоборот.

Практические заметки

  • Порядок атрибутов XML значим для некоторых систем (не для многих современных), форматтер сохраняет порядок ввода.
  • Самозакрывающиеся против явных пустых тегов: <foo/> и <foo></foo> эквивалентны в XML; форматтер использует самозакрывающиеся для пустых элементов, если вы не откажетесь.
  • Префиксы пространств имен сохраняются точно.

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

Да. Текст внутри элементов со смешанным содержимым и секций CDATA сохраняется как есть; только пробелы между элементами корректируются для отступов.

Практический предел, около 50 МБ в браузере. За этим разбор DOM потребляет слишком много памяти. Для огромных файлов используйте потоковый форматтер вроде xmllint в командной строке.

Да. Объявления пространств имен сохраняются на своем элементе; форматтер не перетасовывает их к корню, если вы не включите «консолидировать пространства имен».

Нет. Разбор и форматирование происходят в вашем браузере, ничего не передается.

Сопутствующие инструменты

Смешивание цветов

Смешайте два HEX-цвета в 2-20 равномерных образцов. Каждый промежуточный цвет показывается как HEX-код в верхнем регистре, включая оба края.

Счетчик FPS

Измерьте FPS браузера через requestAnimationFrame: сглаживание, минимальная и максимальная частота кадров, порог предупреждения и график по желанию. Работает локально, без загрузок и API.

Генератор случайных букв

Генерируйте случайные буквы A-Z. Выберите количество, верхний или нижний регистр либо смешанный вариант для игр, заданий и уроков.

Генератор бейджей README

Создавайте бейджи shields.io для файлов README на GitHub: статус сборки, версия, лицензия, число загрузок и покрытие кода. Просмотрите и скопируйте фрагмент Markdown.

Генератор случайных адресов

Создавайте 1–20 похожих на адрес записей для макетов и тестов в трёх упрощённых форматах.

Конвертер из формата HEX в ASCII

Преобразует последовательности шестнадцатеричных байтов в текст в формате ASCII. Отлично подходит для отладки протоколов, обратного инженеринга и решений задач типа CTF.

Инструмент доступен на других языках