Открыть XML-файл
Сворачиваемое дерево вместо стены угловых скобок. Сверните то, что не нужно, найдите то, что нужно, и ясно увидьте атрибуты и пространства имён.
- Не сохраняется
- Без очереди и ожидания
- Без регистрации и водяных знаков
Вставьте XML, RSS-ленту, SVG или файл конфигурации — он появится здесь в виде дерева.
Как это работает
Вставьте или перетащите файл
XML, RSS, Atom, SVG, карта сайта, файл конфигурации — всё, что является XML.
Изучите дерево
Сворачивайте ветки, разворачивайте нужную и смотрите, насколько глубок документ.
Ищите внутри
Найдите элемент, атрибут или значение, не читая всё подряд.
Дерево, по которому действительно можно перемещаться
XML в текстовом редакторе — это стена угловых скобок; тот же документ в виде дерева можно читать. Каждый элемент становится строкой, которую можно развернуть или свернуть, атрибуты показаны рядом со своим элементом, а не загромождают строку, а вложенность передаётся отступами. Чтобы найти одну нужную запись в выгрузке на десять тысяч строк, достаточно свернуть ненужные ветки.
Документ, в котором больше нескольких сотен элементов, открывается свёрнутым ниже корня — намеренно. Если сначала отрисовать все строки большой выгрузки, страница станет доступна лишь через несколько секунд и будет тормозить при прокрутке; свёрнутое начало сразу показывает структуру документа, а обычно вы ищете именно её. Разворачивать по мере продвижения и быстрее, и лучше помогает понять незнакомый файл.
Ничего не загружается извне и ничего не разрешается. XML-документ может ссылаться на внешний DTD или сущность, и парсер, который следует этим ссылкам, пойдёт и получит всё, на что они указывают, — файл на диске, адрес во внутренней сети. Это уязвимость XML External Entity (XXE), и единственная полная защита — отказаться. Поэтому документ, зависящий от внешнего DTD, отображается без него: это свойство безопасности, а не недоработка, и важнее всего оно именно в том случае, ради которого обычно и открывают просмотрщик, — при изучении файла, написанного не вами.
Пространства имён показываются так, как записаны, а не нормализуются, потому что в незнакомом документе часто именно префикс вы и пытаетесь понять. Разделы CDATA отображаются как буквальный текст, который в них содержится, а ссылки на сущности показываются, а не раскрываются, так что вы видите то, что действительно есть в файле.
Если нужно другое
Когда вы знаете, что ищете, делайте запрос, а не листайте. xmlstarlet sel -t -v "//order[@id='42']/total" data.xml отвечает на конкретный вопрос выражением XPath, и xmllint --xpath делает то же самое. Когда вы можете описать, что вам нужно, это намного быстрее, чем разворачивать дерево.
Для файлов, которые не помещаются в память, — а XML, разобранный в дерево, обычно занимает в несколько раз больше самого файла, — не поможет ни один просмотрщик. Потоковые парсеры, например iterparse в Python, проходят многогигабайтный документ с постоянным расходом памяти, а less вместе с xmllint --format достаточно, чтобы увидеть структуру огромного файла, не загружая его целиком.
Частые вопросы
Мой файл где-нибудь сохраняется?
Нет. Ничего не сохраняется и не хранится, а после загрузки страницы всё работает даже с выключенным Wi-Fi.
Что будет, если XML повреждён?
Вы получите строку, столбец и символ: проблемная строка будет показана, а место ошибки отмечено значком ^ — так же, как в нашем инструменте «Проверить XML». Просмотрщик, который просто сообщает «не удалось разобрать», ничем вам не помогает.
Показываются ли атрибуты и пространства имён?
Да. Атрибуты показаны у своего элемента, а не скрыты, а объявления пространств имён выделены: необъявленный префикс — одна из самых частых причин, по которым XML не разбирается в другом месте, а в обычном текстовом виде его не заметить.
Можно ли открыть ленту RSS или Atom?
Да, это тоже XML. Как и карты сайта, изображения SVG, разметки Android, файлы Maven POM и большинство файлов конфигурации. Если это XML, он здесь откроется.
Это то же самое, что «Форматировать XML»?
Они отвечают на разные вопросы. Форматирование даёт XML-текст с отступами, чтобы скопировать его обратно в файл. Здесь же вы получаете дерево для чтения и изучения, со сворачиваемыми ветками, — это удобнее, когда документ большой и вы что-то в нём ищете, а не редактируете.
Файл какого размера можно открыть?
Ограничение — доступная память, а не фиксированный размер. Большие документы открываются свёрнутыми, чтобы вам не пришлось ждать отрисовки тысяч узлов, прежде чем что-либо сделать.
Полезно знать: Документ, в котором больше нескольких сотен элементов, открывается свёрнутым ниже корня, чтобы страницей можно было пользоваться сразу, а не ждать отрисовки тысяч строк. Весь документ хранится в памяти, поэтому очень большие выгрузки XML ограничены возможностями вкладки, а не инструмента.
Разместите этот инструмент на своём сайте
Бесплатно для любого блога, страницы класса или справочной статьи. Вставьте один фрагмент кода — и посетители смогут пользоваться инструментом прямо на вашей странице.