Конвертируйте XML в JSON формат
Коротко об инструменте
Обратная задача: прайс, выгрузка поставщика или ответ SOAP-сервиса пришли в XML, а работать с ними надо в JavaScript или в скрипте на Python. Вставьте документ в поле «XML на входе», нажмите «Конвертировать» — и получите структуру, где имена тегов стали ключами, а несколько одноимённых соседних узлов свернулись в массив. Разбор идёт средствами самой страницы, поэтому чужой прайс не покидает компьютер. Результат копируется или скачивается файлом. Смотрите также: выполнить обратное преобразование в XML, разобрать нечитаемый XML по отступам, выгрузить разобранные узлы в таблицу.
В XML без подключённой схемы все значения — текст: тег 8900 не сообщает, что внутри число. Разбор не догадывается о типах и переносит содержимое как строку. Так безопаснее для артикулов с ведущими нулями и телефонов. Нужные поля приведите к числу или дате уже в коде, где известно, что означает каждый тег.
Разбор здесь простой и в первую очередь переносит вложенность узлов и их текст. Обязательно проверьте на своём документе, попали ли атрибуты в результат: если они несут значимые данные, а в JSON их нет, документ придётся обрабатывать полноценным парсером на бэкенде или сначала переписать атрибуты во вложенные теги.
Двоеточие в имени тега остаётся частью ключа, поэтому в JSON вы увидите ключ вида "soap:Body". Обращаться к нему в коде можно только через квадратные скобки, а не через точку. Если префиксы мешают, удалите их поиском и заменой до конвертации — для чтения выгрузки это обычно безопасно, для подписи запроса нет.
В XML нет отдельного обозначения списка: список из одного элемента выглядит как обычный вложенный тег. Поэтому выгрузка с одной позицией даёт объект, а с двумя — массив, и код, который всегда ждёт массив, ломается на первом же коротком файле. Проверяйте тип узла при обходе или приводите его к массиву принудительно.
Ограничение задаёт память вкладки, а не сервер: небольшие документы разбираются мгновенно, а многомегабайтный прайс может подвесить страницу, потому что дерево целиком строится в памяти. Для крупных выгрузок вставьте фрагмент — пару карточек товара, — чтобы понять структуру, а полный файл обработайте скриптом.
Значит документ не разобрался, и страница говорит об этом прямо вместо того, чтобы отдать пустое поле или половину структуры. Текст ошибки — это сообщение самого разборщика браузера, в нём обычно назван номер строки. Типичные причины: незакрытый тег, два корневых элемента подряд, сырые знаки & или < внутри текста, обрезанный при копировании конец файла. Поправьте указанное место и повторите.
До: A-1 Kreslo 8900
После: { "offer": { "id": "A-1", "name": "Kreslo", "price": "8900" } } До: sale new
После: { "tags": { "tag": ["sale", "new"] } } Оценка и фидбек помогают понять, что улучшать дальше.