Инструменты XML

XPath тестерпроверьте запрос на исходном документе

Запуск кнопкой или Ctrl/Cmd+Enter. После изменения текста, привязок или вида результата выполните запрос снова.

XPath тестер

Входной XML

Результат

XML и запросы обрабатываются в этом браузере; документ не отправляется на сервер.

Используйте префикс ASCII, например {"b":"urn:books"}; он может отличаться от исходного.

XPath 1.0; ручной запуск через Ctrl/Cmd+Enter. Скалярные значения JSON записаны строками для сохранения NaN и Infinity.

Результат устарел. Повторите запрос для экспорта.

XPath тестер помогает найти причину, когда запрос работает на примере, но ничего не находит в настоящем XML. Часто отличаются пространство имён по умолчанию, условие атрибута или глубина элемента.

Здесь можно проверить XPath без предварительного форматирования. XPath выражения используют исходный текст, а XML узлы сохраняют значимые пробелы, поэтому сравнение не подменяет документ очищенной копией.

Зачем нужен XPath тестер

Сопоставляйте выбранные ветви

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

Две выбранные ветви заголовков в дереве XML извлекаются как два результата.

Связывайте имена через URI

Свяжите b с urn:books и используйте //b:book, даже если в документе другой префикс. Элементы с одинаковым локальным именем, но разными URI остаются разными.

Одноимённые узлы в разных пространствах имён; выбрана только связанная группа.

Три детали, влияющие на результат

01

Назначьте псевдоним пространству по умолчанию

При xmlns="urn:books" введите {"b":"urn:books"} и используйте //b:book. Запрос //book выбирает только элементы без пространства имён.

02

Различайте текстовый вид и text()

Текстовый вид получает полное строковое значение элемента, включая потомков. //title/text() выбирает непосредственные текстовые узлы; при смешанном содержимом результаты могут различаться.

03

Повторите запрос перед экспортом

Изменение XML, выражения, привязок или вида отключает экспорт. Выполните запрос заново. Предпросмотр добавляет по 50 результатов, а копирование и скачивание включают весь успешный результат.

Выбор, извлечение и проверка пути

Четыре типа результата

Помимо наборов узлов поддерживаются string(//title), count(//book) и boolean(//missing). JSON хранит тип и строковые значения: NaN и Infinity не превращаются незаметно в null.

Атрибуты и условия

//book[@id="b1"] отбирает элементы, //@id извлекает атрибуты, //book[price>15]/title проверяет числовое условие. Ноль совпадений считается успехом: count равен 0, values содержит пустой массив.

Пути для повторной проверки

Позиции различают одноимённых соседей. Для элементов с пространством имён используются local-name() и namespace-uri(), поэтому путь не зависит от настроенного префикса. После изменения структуры документа позиции могут сместиться.

Версии и ограничения

Только XPath 1.0
XPath тестер использует движок браузера. XPath 2.0/3.1, matches(), ends-with(), переменные и XQuery не поддерживаются. Совпадение результатов оси namespace:: между браузерами не гарантируется.
Строгий XML без исправлений
Принимается только корректный XML 1.0. DTD и внешние сущности отклоняются; объявление кодировки допускает UTF-8. Пропущенные теги HTML не добавляются, пробелы исходного содержимого не удаляются. Соседние текст и CDATA объединяются для модели XPath. При сериализации маркеры CDATA могут заменяться экранированным текстом с сохранением символов.
Явные привязки префиксов
JSON-объект связывает префиксы ASCII с непустыми URI. Пустой префикс и xmlns запрещены; xml закреплён за стандартным URI. Не-ASCII префикс в исходнике можно запросить через ASCII-псевдоним того же URI.
Ограниченная синхронная обработка
Пределы: 100 000 символов входа, 2 000 узлов XML вместе с атрибутами и текстом, глубина 100, выражение 2 000 символов, 1 000 совпадений и 2 000 000 символов вывода. Превышение отменяет весь результат. У синхронного API нет жёсткого тайм-аута; сложный запрос может ненадолго остановить вкладку.
Ввод и восстановление
Доступна вставка текста, без импорта URL, загрузки файлов, сохранённых ссылок и проверки схемы. Очистка и пример сначала показывают предпросмотр. Применение заменяет XML и параметры; отмена один раз восстанавливает входные данные и результат.

XPath тестер: вопросы

Как получить текст через XPath?

Выберите элемент и переключитесь на текстовые значения, чтобы получить текст вместе с потомками. //title/text() выбирает непосредственные текстовые узлы, а string(//title) возвращает значение только первого заголовка.

Как получить узлы XML с пространством имён?

Задайте в JSON привязку, например {"b":"urn:books"}, и используйте //b:book. Префикс может отличаться от исходного, но URI должен совпадать. Пространство по умолчанию не применяется к именам без префикса в XPath 1.0.

Как получить значение внутри тега с помощью XPath?

Для содержимого элемента используйте текстовый вид или string(путь). При смешанной разметке это включает текст дочерних элементов. Если нужны только прямые текстовые узлы, добавьте /text() к пути.

Как прочитать и сравнить атрибут XPath?

Для чтения атрибута используйте //book/@id, для фильтра — //book[@id="b1"]. Регистр важен. Атрибут без префикса не наследует пространство имён по умолчанию.

Поддерживаются ли XPath 2.0 и 3.0?

Нет. Выполнение использует настоящий XPath 1.0 браузера. Для matches() и других функций новых версий нужен другой движок; отказ выражения не означает ошибку XML.

Остался вопрос?

Проверить следующее выражение

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