Тестер XPath
Проверяйте выражения XPath 1.0 на XML или HTML и сразу видите найденные узлы, атрибуты, текст и числовые или строковые результаты встроенным движком браузера.
Что такое Тестер XPath?
Тестер вычисляет выражение XPath на вставленном вами документе XML или HTML и показывает результат: найденные элементы с разметкой и текстом, значения атрибутов либо число, строку или логическое значение для выражений вроде count() или sum(). Результаты обновляются по мере ввода.
Как пользоваться Тестер XPath
- Введите выражение XPath, например
//book[price > 35]/title. - Выберите, разбирать документ как XML или как HTML.
- Вставьте или отредактируйте документ.
- Прочитайте число совпадений и каждый найденный узел либо скалярный результат.
Пример
//book[price > 35]/title on the sample bookstore XML
2 matches: Learning XML, XQuery Kick Start
sum(//book/price) возвращает 119.94.
Когда использовать Тестер XPath
Используйте для разработки XPath для веб-скрапинга, локаторов Selenium/Playwright, XSLT или обработки конфигураций XML. Браузеры реализуют только XPath 1.0, поэтому функции XPath 2.0/3.1 (например, matches(), string-join()) недоступны. Скрипты во вставленном HTML не выполняются.
Как работает Тестер XPath
Документ разбирается встроенным DOMParser браузера (application/xml или text/html); синтаксические ошибки XML сообщаются. Выражение вычисляется через document.evaluate(), собственный движок XPath 1.0 браузера, с результатами ANY_TYPE, поэтому поддерживаются наборы узлов, числа, строки и логические значения. Префиксы пространств имён разрешаются по объявлениям на корневом элементе. Отображается до 200 совпадений.
Распространенные Случаи Использования
- Построить локатор вроде
//button[normalize-space()="Save"]для UI-тестов. - Извлечь все значения атрибутов через
//book/@category. - Посчитать количество или сумму значений в XML-ленте.
- Отладить, почему XPath в скрапере ничего не возвращает.
Часто Задаваемые Вопросы
Почему мой XPath с пространством имён по умолчанию ничего не возвращает?
В XPath 1.0 имена без префикса никогда не совпадают с элементами в пространстве имён. Объявите префикс на корневом элементе и используйте его либо применяйте *[local-name()='book'].
Разбирать как HTML или как XML?
HTML для веб-страниц (терпимый разбор, теги в нижнем регистре); XML для лент, SOAP, карт сайта и конфигураций.
Поддерживается ли XPath 2.0?
Нет. Все основные браузеры реализуют только XPath 1.0.