Парсер XML

Мгновенное форматирование, проверка и запросы к XML-документам. Работает на основе встроенных API браузера для максимальной скорости и конфиденциальности.

Форматирование и сжатие Запросы XPath Проверка

Как использовать парсер XML

1

Вставьте XML

Скопируйте и вставьте содержимое XML в поле ввода или нажмите «Загрузить пример XML».

2

Форматирование и проверка

Используйте «Форматировать» для красивого вывода, «Сжать» для сжатия или «Проверить» для поиска ошибок.

3

Запросы через XPath

Введите выражение XPath и нажмите «Выполнить XPath» для извлечения определённых узлов.

Что такое XML?

XML (eXtensible Markup Language) — это язык разметки, определяющий набор правил для кодирования документов в формате, удобном как для чтения человеком, так и для машинной обработки. Широко используется для конфигурационных файлов, обмена данными (SOAP, RSS, Atom) и хранения документов.

Ключевые особенности XML

Самоописываемость

XML использует пользовательские теги для описания структуры данных, что позволяет легко понять содержимое и иерархию с первого взгляда.

Независимость от платформы

Как обычный текст, XML работает на всех платформах, языках программирования и системах без проблем совместимости.

Расширяемость

Вы можете определять собственные теги и структуру документа с помощью DTD или XML Schema для любой модели данных.

Часто задаваемые вопросы

В чём разница между корректным и валидным XML?

Корректный XML следует базовым синтаксическим правилам XML (правильная вложенность, закрывающие теги, единственный корневой элемент). Валидный XML — это корректный XML, который также соответствует схеме (DTD, XSD), определяющей допустимую структуру и типы данных.

Выполняет ли этот инструмент проверку по схеме XSD?

Нет, этот инструмент проверяет только корректность (синтаксическую правильность). Проверка по схеме DTD или XSD не поддерживается в браузере нативно.

Какая версия XPath поддерживается?

Встроенный метод браузера document.evaluate() поддерживает XPath 1.0. Это покрывает большинство распространённых запросов, включая оси, предикаты и функции, такие как contains(), text() и @attribute.

Что такое пространства имён XML и как их читать?

Пространство имён сопоставляет имена элементов с URI через атрибуты xmlns — например, элемент atom:feed, объявляющий xmlns:atom="http://www.w3.org/2005/Atom". Префикс произвольный; пространство имён идентифицируется только URI, поэтому два документа могут использовать разные префиксы для одного и того же словаря. Именно из-за пространств имён сопоставление в XPath часто требует трюков с local-name(), когда префиксы различаются.

Как XPath выбирает узлы?

Выражения XPath 1.0 обходят дерево: /rss/channel/item выбирает по пути, //item находит элементы item в любом месте документа, item[@type='news'] фильтрует по атрибуту, а предикаты вроде item[1] или item[last()] выбирают конкретные узлы. Это язык запросов, лежащий в основе XSLT, множества тестовых фреймворков и вычислителя выражений этого инструмента.

Что такое XXE и может ли он затронуть этот инструмент?

Инъекция XXE (XML External Entity) эксплуатирует сущность DTD, указывающую на путь к файлу или URL, заставляя серверный парсер её загрузить — исторически это приводило к утечке /etc/passwd или данных внутренних сервисов. XML-парсеры браузеров не разрешают внешние сущности, а этот инструмент работает полностью в вашем браузере без обращений к серверу, поэтому вставленный XML не может вызвать чтение файлов или SSRF.

В чём разница между парсингом DOM и SAX?

DOM загружает весь документ в дерево, по которому можно свободно перемещаться — интуитивно понятно, но требует много памяти для огромных файлов. SAX передаёт события (открывающий тег, текст, закрывающий тег) за один проход с постоянным расходом памяти — быстро, но только в прямом направлении. В браузерном JavaScript доступен DOMParser (в стиле DOM); потоковая обработка XML в JavaScript требует библиотеки или Web Streams.

Как включить < или & внутрь содержимого XML?

Экранируйте их как &lt; и &amp; в обычном тексте — сырые < и & недопустимы в символьных данных. Для блоков текста, насыщенного разметкой, оберните его в секцию CDATA, которая не требует экранирования до последовательности ]]> в её конце. В содержимом строго обязательно экранировать только < и &; > нужно экранировать лишь тогда, когда он образует эту закрывающую последовательность.

{-- * External Resources Component(#18 Phase 3b 内容佐证工程) * 工具页「权威引用」区块:RFC / W3C / WHATWG / ECMA / IANA / 官方规范站 / Wikipedia。 * * - 接受 :slug 属性 → 经 config/tool-sources.php 家族矩阵渲染该工具的权威引用 * - slug 未命中映射时不渲染(无权威来源的工具静默跳过) * - 链接 title 保持英文(引用源专名);description 经 * common.resources.descriptions.{key} 本地化,lang 未命中回退英文(线上不裸奔) * - 链接保持 dofollow(rel="noopener noreferrer") * * @param string|null $slug --}}