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

Открыть XML-файл

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

  • Не сохраняется
  • Без очереди и ожидания
  • Без регистрации и водяных знаков
Дерево

Вставьте XML, RSS-ленту, SVG или файл конфигурации — он появится здесь в виде дерева.

Как это работает

1

Вставьте или перетащите файл

XML, RSS, Atom, SVG, карта сайта, файл конфигурации — всё, что является XML.

2

Изучите дерево

Сворачивайте ветки, разворачивайте нужную и смотрите, насколько глубок документ.

3

Ищите внутри

Найдите элемент, атрибут или значение, не читая всё подряд.

Дерево, по которому действительно можно перемещаться

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 ограничены возможностями вкладки, а не инструмента.

Разместите этот инструмент на своём сайте

Бесплатно для любого блога, страницы класса или справочной статьи. Вставьте один фрагмент кода — и посетители смогут пользоваться инструментом прямо на вашей странице.