Перейти к содержанию

Оценивателен XPath

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

Входные данные
Выходные данные

Оценивателен XPath

Вставьте XML-документ, напишите выражение XPath 1.0 и этот инструмент выведет каждый узел, который оно совпадает — без необходимости писать скрипт или открывать отладчик, чтобы проверить, действительно ли селектор находит то, что вы ожидаете. Он создан для момента, когда вы смотрите на таблицу стилей XSLT, правило парсинга или путь XQuery, который не возвращает то, что вы ожидали, и нужно протестировать выражение изолированно на реальном документе.

Опция типа результата определяет, как читается значение выражения: «Набор узлов» выводит все соответствующие элементы, атрибуты, текстовые узлы или комментарии; «Строка», «Число» и «Логическое значение» приводят всё выражение так же, как это делают функции string(), number() и boolean() самого XPath, что является способом проверить сравнение или вызов count() изолированно. Для результатов набора узлов опция «Показывать совпадения как» переключается между текстовым содержимым каждого совпадения и его полным сериализованным XML, и вы можете нумеровать совпадения или предварять каждое разрешённым путём (например /catalog/book[2]/title), который его нашёл.

Поддерживаемый синтаксис охватывает подмножество, которое люди действительно используют: все десять стандартных осей (child, descendant, descendant-or-self для //, parent, ancestor, self, following-sibling, preceding-sibling и attribute для @), подстановочные знаки, позиционные и логические предикаты, оператор union и общие функции — position(), last(), count(), name(), contains(), starts-with(), substring(), concat(), normalize-space() и арифметические, и операторы сравнения. Переменные, document(), key() и ось namespace не поддерживаются. Документы с пространством имён требуют привязки префикса к его URI в «Привязки пространств имён», один пар префикс=URI на строку — или включите «Игнорировать пространства имён», чтобы сопоставлять только по локальному имени, независимо от префикса.

Всё выполняется локально в вашем браузере: XML, который вы вставляете, и выражение, которое вы против него пишите, никогда не загружаются нигде, поэтому безопасно тестировать его против реальных ответов API, экспортов конфигурации или фрагментов журнала производства. Неверный XML и неверные выражения сообщаются с указанием того, что пошло не так и почему, а не пустой результат.

FAQ

Какие части XPath 1.0 поддерживаются?
Все десять стандартных осей, тесты имён и типов узлов (включая подстановочные знаки и text()/comment()/node()), позиционные и логические предикаты, оператор union (|), арифметические и операторы сравнения, и общие функции как position(), last(), count(), name(), string(), contains(), starts-with(), substring(), concat(), normalize-space() и sum(). Переменные ($x), document(), key() и ось namespace не поддерживаются.
Почему моё выражение не совпадает ни с чем в документе с пространством имён?
Тест имени без префикса совпадает только с элементами без пространства имён — это то же правило, которое следуют реальные процессоры XPath. Привяжите префикс, который использует ваше выражение, к URI пространства имён документа в «Привязки пространств имён» (один пар префикс=URI на строку), или включите «Игнорировать пространства имён», чтобы сопоставлять только по локальному имени.
В чем разница между четырьмя типами результатов?
«Набор узлов» выводит сами совпадающие узлы. «Строка», «Число» и «Логическое значение» вместо этого приводят всё выражение так же, как функции string(), number() и boolean() в XPath — полезно для прямой проверки выражения count() или сравнения без его заворачивания в предикат.
Что происходит с недопустимым XML или недопустимым выражением?
Инструмент сообщает, какой из них не удался и почему — незакрытый тег или несовпадающий элемент для XML, неожиданный токен или непривязанный префикс пространства имён для выражения — вместо возврата пустого или вводящего в заблуждение результата.
Мой XML-документ загружается куда-нибудь?
Нет. Анализ и оценка работают полностью в вашем браузере — документ и выражение никогда не покидают ваше устройство.