Форматирование XML
Вставьте XML — он разложится сам, текст и атрибуты останутся нетронутыми.
Отформатированный XML
Как пользоваться
- Вставьте XML в поле — он форматируется по мере ввода, нажимать ничего не нужно.
- Выберите «Форматировать» или «Минифицировать» и отступ в 2 или 4 пробела; результат обновляется сразу.
- Если структура нарушена, сообщение называет строку, столбец и элемент. Скопируйте результат или скачайте его файлом .xml.
Пример
Ввод
<order id="A-1042"><customer><name>Ада Лавлейс</name><email>ada@example.com</email></customer><items><item sku="X-1" qty="2">Шестерня аналитической машины</item><item sku="X-2" qty="1">Комплект перфокарт</item></items></order>
Отформатировано
<order id="A-1042"> <customer> <name>Ада Лавлейс</name> <email>ada@example.com</email> </customer> <items> <item sku="X-1" qty="2">Шестерня аналитической машины</item> <item sku="X-2" qty="1">Комплект перфокарт</item> </items> </order>
Только правила по умолчанию: один элемент на строке, два пробела на уровень. Порядок атрибутов, кавычки и значения не тронуты, как и текст внутри <name>.
Правила, ограничения и известные проблемы
- Проверяется только структура: парность тегов, кавычки, дубликаты и разделение атрибутов, имена элементов и атрибутов, синтаксис сущностей. Проверки DTD и XSD, раскрытия сущностей и привязки префиксов пространств имён нет.
- Переписываются только структурные пробелы — пробелы между атрибутами и пробелы, из которых состоит элемент без текста. Порядок атрибутов, стиль кавычек, значения, сущности, комментарии, CDATA и внутреннее подмножество DOCTYPE копируются символ в символ.
- Смешанное содержимое никогда не переотступается: в <p>Привет, <b>мир</b>!</p> пробелы остаются как набраны, потому что добавление переводов строк изменило бы текст. То же касается xml:space="preserve", который копируется дословно.
- Пустые элементы сохраняют набранную форму: <a></a> не сворачивается в <a/>, а <a/> не разворачивается. Атрибуты не сортируются, кавычки не унифицируются.
- Минификация удаляет только структурные пробелы. Пробелы в тексте, комментарии, CDATA и DOCTYPE сохраняются — из содержимого ничего не удаляется.
- Незакрытый тег, комментарий, CDATA или DOCTYPE в самом конце ввода считается предупреждением, а не ошибкой: результат всё равно будет. Настоящие ошибки (несовпадающие теги, значения атрибутов без кавычек, лишний «&») дают ошибку со строкой и столбцом.
- Фрагмент (несколько элементов верхнего уровня или текст вне корня) форматируется и помечается как фрагмент. Ввод вообще без элементов — ошибка.
- Номера строк и столбцов считают кодовые точки Unicode, поэтому эмодзи занимает один столбец. Пробельными считаются только пробел, табуляция, перевод строки и возврат каретки; U+3000 или U+00A0 внутри текста — это содержимое, и оно никогда не удаляется.
- Это не HTML: опущенные закрывающие теги вроде </li> или <br> сообщаются как незакрытые. Нет загрузки файлов, параметров URL, истории, дерева и конвертации XML→JSON. Всё выполняется в браузере: ничего не загружается и не сохраняется.
- Свыше 200 000 символов результат обновляется примерно через 0,6 с после того, как вы закончите ввод; текст никогда не обрезается. Вывод использует LF и не имеет завершающего перевода строки; форматирование идемпотентно.
Похожие инструменты
Что обычно нужно дальше, когда структура стала читаемой.