Skip to main content
CheckTown
Інструменти

XPath Tester: запити до XML-документів з XPath

Опубліковано 6 хв читання
У цій статті

Що таке XPath?

XPath (XML Path Language) — це стандартна мова запитів W3C для вибору вузлів з XML-документів. Вона використовує синтаксис, подібний до шляхів, для навігації ієрархічною структурою XML-дерева, вибираючи елементи, атрибути та текстові вузли на основі їхньої позиції, назви або значення.

XPath не є самостійною технологією — він вбудований в інші стандарти, такі як XSLT, XQuery та DOM API. Усі сучасні браузери підтримують XPath для запитів до HTML-документів, а інструменти як Selenium, Scrapy та lxml широко використовують вирази XPath для веб-скрапінгу та автоматизованого тестування.

Як працюють запити XPath

Вираз XPath навігує деревом документа, використовуючи осі (напрямки), тести вузлів (фільтри) та предикати (умови). Розуміння цих трьох концепцій дозволяє побудувати будь-який запит.

  • Осі та шляхи — / вибирає від кореня, // вибирає нащадків будь-де, .. переходить до батьківського елемента, а іменовані осі як following-sibling:: навігують відносно поточного вузла
  • Предикати та фільтри — квадратні дужки [] додають умови: //book[price>30] вибирає книги з ціною понад 30, а //div[@class='main'] вибирає div з конкретним атрибутом класу
  • Функції та оператори — XPath надає вбудовані функції, такі як contains(), starts-with(), normalize-space() та count() для маніпулювання рядками, порівняння та підрахунку вузлів

Спробуйте безкоштовно — реєстрація не потрібна

Тестувати запит XPath →

Коли використовувати XPath

XPath є незамінним, коли потрібно програмно витягувати конкретні дані з XML або HTML-документів.

  • Веб-скрапінг — витягуйте ціни товарів, заголовки статей або посилання з веб-сторінок за допомогою виразів XPath в інструментах як Scrapy, Puppeteer або консолях розробника браузерів
  • Конфігурація XML — запитуйте та валідуйте складні конфігураційні файли, такі як Maven pom.xml, маніфести Android або контексти Spring XML, для пошуку конкретних налаштувань або залежностей
  • XSLT-перетворення — вибирайте вузли для перетворення в таблицях стилів XSLT, які повністю покладаються на вирази XPath для зіставлення та обробки XML-елементів у різні вихідні формати

Поширені запитання

Коли використовувати XPath замість CSS-селекторів?

CSS-селектори простіші та швидші для базового вибору елементів за тегом, класом або ID. Обирайте XPath, коли потрібно вибирати за текстовим вмістом (//a[contains(text(),'Увійти')]), навігувати вгору до батьківських вузлів, використовувати складні предикати або працювати з XML-документами (не HTML). XPath також необхідний у контекстах XSLT та XQuery.

Що змінилося між XPath 1.0 та 2.0?

XPath 2.0 додав багатшу систему типів (дати, послідовності, регулярні вирази), умовні вирази (if/then/else), квантифіковані вирази (some/every) та вирази діапазону. Однак більшість браузерів та інструментів скрапінгу підтримують лише XPath 1.0. Використовуйте функції XPath 2.0 в серверних інструментах, таких як Saxon, або при роботі з XSLT 2.0.

Як обробляти простори імен XML у XPath?

Елементи з просторами імен вимагають відображення префіксів. У більшості API ви реєструєте префікс простору імен (наприклад, ns='http://example.com') і потім запитуєте з цим префіксом: //ns:book/ns:title. Без реєстрації простору імен //book не відповідатиме елементам у просторі імен, навіть якщо локальне ім'я 'book'. Деякі інструменти підтримують local-name() як обхідний шлях: //*[local-name()='book'].

Пов'язані інструменти