Перейти к содержимому
PulsarKit

Отформатировать XML

Сделайте XML читабельным с отступами, сожмите его в одну строку или только проверьте — комментарии, CDATA и порядок атрибутов сохранятся как есть.

Перетащите файлы сюда

.xml, .rss, .svg, .xhtml, .txt · до 100 МБ

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

  1. 1

    Перетащите XML-файл

    Добавьте один документ или до двадцати за раз. Каждый файл декодируется, парсится и записывается заново прямо в этой вкладке браузера.

  2. 2

    Выберите форматирование, сжатие или проверку

    Форматирование делает отступы по дереву — два пробела, четыре пробела или табы. Сжатие сводит все в одну строку. Проверка только выдает отчет по файлу и ничего в нем не меняет.

  3. 3

    Скачайте обновленный файл

    Сохраните результат рядом с исходником или заберите всю партию одним ZIP-архивом.

Расстановка отступов, а не пересборка документа

Самый простой способ сделать отступы в XML — загрузить его в объект и записать обратно. Но при этом без предупреждения теряется все, что не элемент: комментарии, секции CDATA, инструкции обработки, порядок атрибутов. Этот инструмент обходит документ и печатает его заново, поэтому все это встает на свои места. Текст и значения атрибутов полностью сохраняются, как были записаны. Символ ' так и останется ', а не превратится незаметно в обычную кавычку.

Что именно убирает сжатие

Лишние байты в файле с отступами — это текстовые узлы, которые состоят только из пробелов и переводов строки между тегами. Именно их и удаляет сжатие. Текст с содержимым остается нетронутым. Например, если внутри абзаца часть фразы выделена жирным тегом, пробелы вокруг этого тега — часть предложения, и их потеря сломает документ, а не уменьшит размер.

Ошибки указывают точное место

Синтаксическая ошибка сообщает строку, столбец и ожидаемый закрывающий тег. Сообщение без позиции вынуждает снова прокручивать файл в поисках места. Пользовательские сущности, объявленные в DOCTYPE, отклоняются и не разворачиваются — так «атака миллиарда смехов» не превращает несколько килобайт в гигабайты памяти и не вешает вкладку.

Файл не покидает ваше устройство

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

Частые вопросы

Сохраняются ли комментарии и секции CDATA?

Да, и те и другие — на своих местах и с неизменным текстом. Так же сохраняются инструкции обработки и порядок атрибутов. Если нужно, наоборот, удалить комментарии, есть отдельный переключатель, плюс опция убрать строку XML-декларации.

Чем сжатие отличается от простого удаления пробелов?

Поиск и замена по всему файлу тоже вычищают пробелы внутри текстового содержимого и внутри CDATA, а это уже меняет смысл документа. Здесь удаляются только те текстовые узлы между тегами, которые состоят целиком из пробелов и переводов строки. Элементы с реальным текстом сохраняют свое расстояние и пробелы.

Почему мой файл отклонен из-за объявленных сущностей?

DOCTYPE с объявлением ENTITY отклоняется еще до начала парсинга. Разворачивание сущностей — это способ, которым атака «billion laughs» превращает несколько килобайт в гигабайты памяти, а внешние сущности получают доступ к файлам, которые читать нельзя. Удалите блок DOCTYPE, и остальная часть документа отформатируется нормально.

Можно ли проверить файл без скачивания результата?

Режим проверки делает именно это. Он сообщает, парсится ли документ, сколько в нем элементов, какова максимальная глубина дерева и какая использована кодировка, и при этом не создает выходной файл. Потом можно переключиться на форматирование, если понадобится аккуратная версия.

Работает ли инструмент с SVG, RSS и XHTML?

Да. Все три формата — это XML, поэтому SVG-иконка, RSS-лента или XHTML-страница форматируются и сжимаются по тем же правилам. Документ Office с расширением .docx или .xlsx — это ZIP-контейнер, а не простой XML, поэтому он перенаправляется в подходящий инструмент.

Какой лимит на размер файла?

100 МБ на файл, до двадцати файлов в одной пакетной обработке. Большие документы обрабатываются медленнее в основном потому, что все дерево целиком держится в памяти вместе с комментариями и порядком узлов, а это дороже, чем плоский объект.

С какими кодировками работает инструмент?

Кодировка берется из XML-декларации в начале файла. Поддерживаются UTF-8, UTF-16, windows-1251, windows-1252 и ISO-8859-1, поэтому старые файлы на кириллице или западноевропейских кодировках сохраняют свои символы.

Мой XML где-то загружается или хранится?

Нет. Все работает локально в вашем браузере, без участия сервера и без сохранения данных после закрытия вкладки.

Похожие инструменты

XML в JSONПреобразуйте XML в JSON с атрибутами, CDATA и пространствами имен так, как вам удобно, а ошибки синтаксиса указывают точную строку.XML в ExcelПреобразуйте XML-ленты и выгрузки из систем в таблицу: повторяющийся элемент записи ищется автоматически, атрибуты становятся отдельными столбцами.XML в CSVПреобразуйте фид, выгрузку товаров или RSS-файл в табличный CSV — повторяющийся элемент записи находится автоматически, XPath не нужен.Форматер JSONРасставьте отступы, минифицируйте или только проверьте JSON-файл. Ошибки укажем по строке и столбцу, скрытые проблемы назовем прямо.JSON в XMLСоберите валидный XML-документ из JSON: задайте имена корневого и элементного тегов, а ключи, которые нельзя использовать в XML, исправляются, а не теряются.Сравнить текстДве колонки, удаления красным, добавления зеленым. Измененные слова подсвечены внутри каждой строки.