Отформатировать XML
Сделайте XML читабельным с отступами, сожмите его в одну строку или только проверьте — комментарии, CDATA и порядок атрибутов сохранятся как есть.
Перетащите файлы сюда
.xml, .rss, .svg, .xhtml, .txt · до 100 МБ
Как форматировать XML
- 1
Перетащите XML-файл
Добавьте один документ или до двадцати за раз. Каждый файл декодируется, парсится и записывается заново прямо в этой вкладке браузера.
- 2
Выберите форматирование, сжатие или проверку
Форматирование делает отступы по дереву — два пробела, четыре пробела или табы. Сжатие сводит все в одну строку. Проверка только выдает отчет по файлу и ничего в нем не меняет.
- 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 где-то загружается или хранится?
Нет. Все работает локально в вашем браузере, без участия сервера и без сохранения данных после закрытия вкладки.