Форматируйте XML с отступами
Коротко об инструменте
XML из интеграции, из YML-фида для маркетплейса или из ответа SOAP-сервиса почти всегда приходит одной длинной строкой без переносов. Найти в такой выгрузке нужный узел глазами невозможно. Инструмент разбирает документ и печатает его с отступами по уровням вложенности, а обратная кнопка сворачивает результат в компактный вид для передачи. Разбор ведёт встроенный в браузер парсер, поэтому файл с ценами или заказами остаётся у вас. Смотрите также: разобрать этот XML в объект JSON, собрать XML из данных JSON, то же форматирование для файлов JSON.
Отформатируйте документ: незакрытый или лишний тег сразу ломает лесенку отступов, и место сбоя видно по строке, которая ушла не на свой уровень. Разбор останавливается на первой ошибке, поэтому исправляйте по одной и форматируйте заново. Типичные причины — голый амперсанд в названии товара, кавычка внутри атрибута и обрезанный при выгрузке хвост файла.
Меняются только пробелы и переносы между узлами: значения, атрибуты и порядок элементов остаются как есть. Но для форматов, где пробелы внутри текстового узла значимы, добавленные отступы могут оказаться лишними — в таком случае передавайте получателю минифицированный вариант, а форматированный держите для чтения.
По-разному у двух кнопок, и это стоит знать заранее. «Минифицировать» сохраняет и секции CDATA, и комментарии как есть. «Форматировать» перестраивает документ по узлам: текст из CDATA остаётся текстом, но обёртка CDATA пропадает, а знаки < и & в нём экранируются; комментарии в отформатированный вывод не попадают. Если вы правите YML-фид с HTML внутри CDATA, форматированный вид годится для чтения, а отправлять получателю нужно исходник или минифицированный вариант.
Фрагменты и файлы на несколько тысяч строк обрабатываются быстро. Полный фид маркетплейса на десятки мегабайт вставлять в поле не стоит: вся строка держится в памяти вкладки, и браузер начнёт подвисать. Для таких объёмов удобнее локальный редактор, а сюда несите отдельную ветку документа.
Отступы — это лишние байты в каждом запросе. Для тела SOAP-запроса, для передачи по слабому каналу и для хранения компактный вариант экономнее, а машине читаемость не нужна. Порядок работы обычно такой: свернуть перед отправкой, развернуть, когда надо разобраться в ответе.
Никто, кроме вас: разбор и печать выполняются скриптом страницы в открытой вкладке, отправки файла на сервер в этом сценарии нет. Поэтому выгрузку с ценами, остатками или персональными данными заказов можно приводить в читаемый вид, не выкладывая её в сторонний сервис.
До: Роутер4290
После: Роутер 4290
До: Отформатированный фрагмент выше + кнопка «Минифицировать»
После: Роутер4290
Оценка и фидбек помогают понять, что улучшать дальше.