XPath — це технологія, яка точно та ефективно визначає та витягує необхідну інформацію з даних структури дерева, таких як HTML і XML.
Огляд XPath
XPath — це мова, що використовується для визначення та вилучення конкретних елементів і атрибутів у дереві документів XML або HTML. Оскільки веб-сторінки часто складаються з HTML, XPath широко використовується в різних сценаріях, таких як веб-скрейпінг, пошук даних та пошук даних у XML.
Типове використання таке:
- Витяг даних у веб-краулерах: XPath використовується для автоматичного отримання конкретних даних, таких як інформація про продукти на веб-сайтах електронної комерції або заголовки статей на новинних сайтах.
- Пошук і обробка даних у XML: У бізнес-системах та обробці даних часто обмінюються у форматі XML. Завдяки XPath ви можете ефективно витягувати необхідну інформацію з великих обсягів XML-даних.
- Парсінг API Responses (XML Format): При використанні XML-API, таких як SOAP, XPath використовується для аналізу даних відповідей. Це дозволяє швидко отримувати конкретні коди статусу та дані результатів, підвищуючи точність інтеграції системи та автоматизованої обробки.
Рекомендації інструментів
У процесі навчання та використання XPath поширені інструменти включають:
Інструменти розробника Chrome: потужний інструмент у комплекті з браузером Chrome, його можна викликати, натиснувши клавішу F12. У панелі «Elements» ви можете швидко знайти HTML-елементи на веб-сторінці, навівши курсор і клацнувши, а клацнувши правою кнопкою миші на елементі, можна безпосередньо скопіювати вираз XPath для зручної перевірки та тестування. Наприклад, при аналізі сторінки товару в електронній комерції ви можете використовувати інструменти розробника Chrome, щоб швидко отримати XPath для назв товарів, цін та інших елементів. Firefox Developer Tools: Також постачається з браузером, подібно до Chrome Developer Tools. Це також дозволяє легко знаходити елементи на вашій сторінці, а також переглядати та тестувати вирази XPath. Це хороший варіант для розробників, які звикли користуватися браузером Firefox. Онлайн-інструменти тестування XPath: Онлайн-інструменти, такі як «XPath Tester», можна використовувати без встановлення і відкривати веб-сторінку. Просто вставте вміст XML або HTML-документа, введіть вираз XPath і побачте результати матчу в реальному часі. Цей інструмент особливо підходить для початківців, щоб швидко почати виконувати прості вправи XPath. Плагін XPath Helper: Візьмемо браузер Chrome як приклад: після встановлення плагіна XPath Helper додається плаваюче вікно в інтерфейс браузера під час перегляду вебу, яке відображає шлях XPath поточного елемента для наведення миші, а також можна редагувати та тестувати вирази XPath безпосередньо у вікні, що значно підвищує ефективність розробки.
Синтаксис XPath Abstract
Виберіть вузол
XPath використовує вирази шляхів для вибору вузлів у XML-документі. Вузли вибираються шляхом або кроком. Найкорисніші вирази шляхів наведені нижче:
вираз | опис | | Ім'я вузла | Вибирає всі дочірні вузли цього вузла. | | / | Виберіть з кореневого вузла (візьмемо дочірній вузол). | | // | Вибирає вузли в документі з поточного вузла відповідного вибору, незалежно від їхнього розташування (візьмемо нащадки). | | . | Виберіть поточний вузол. | | .. | Виберіть батьківський вузол поточного вузла. | | @ | Виберіть атрибут. |
У таблиці нижче ми перелічили деякі вирази шляхів разом із результатами цих виразів:
Вирази шляхів | результат | | Книжковий магазин | Виберіть усі вузли з назвами bookstore. | | /bookstore | Виберіть книгарню кореневого елемента. Примітка: Якщо шлях починається з косої косої черти вперед ( / ), то цей шлях завжди є абсолютним шляхом до елемента! | | Книгарня/Книга | Обирає всі книжкові елементи, які є дитячими елементами книгарні. | | //book | Обирає всі піделементи книги, незалежно від їхнього положення в документі. | | Книгарня//книга | Виберіть усі елементи книги, які є нащадками елемента книгарні, незалежно від того, де вони розташовані в межах магазину. | | @lang | Виберіть усі властивості з назвою lang. |
Предикатів
Предикат використовується для пошуку конкретного вузла або вузла, що містить задане значення. Предикат вбудований у квадратні дужки. У таблиці нижче наведено деякі вирази шляхів із предикатами та результати цих виразів:
Вирази шляхів | результат | | /bookstore/book[1] | Виберіть перший елемент книги, який є частиною дитячого елемента книгарні. | | /bookstore/book[last()] | Обирає останній елемент книги, який є частиною піделемента книгарні. | | /bookstore/book[last()-1] | Обирає передостанній елемент книги, який належить дитячому елементу книгарні. | | /bookstore/book[position()<3] | Виберіть перші два елементи книги, які є дочірніми елементами елемента книгарні. | | Заголовок[@lang] | Вибирає всі елементи титулу, які мають власність з назвою lang. | | title[@lang='eng'] | Вибирає всі елементи назви, які мають атрибут lang і значення eng. | | /bookstore/book[price>35.00] | Вибирає всі елементи книги з елемента книгарні, і вартість цінового елемента має бути більшою за 35.00. | | /bookstore/book[price>35.00]//title | Вибирає всі елементи назви елемента книги в елементі книгарні, і вартість цінового елемента має бути більшою за 35.00. |
Виберіть невідомий вузол
XPath wildcards можна використовувати для виявлення невідомих XML-елементів.
Узагальнення | опис | | * | Збігається з будь-яким елементним вузлом. | | @* | Відповідає будь-якому вузлу атрибуту. | | node() | Відповідає будь-якому типу вузла. |
У таблиці нижче наведено деякі вирази шляхів і результати цих виразів:
Вирази шляхів | результат | | /bookstore/* | Обирає всі дочірні елементи елемента книгарні. | | //* | Вибирає всі елементи документа. | | Заголовок[@*] | Вибирає всі елементи титулу з атрибутами. |
Виберіть кілька шляхів
Використовуючи "|" у виразі шляху Оператори, ви можете обрати кілька шляхів.
У таблиці нижче наведено деякі вирази шляхів і результати цих виразів:
Вирази шляхів | результат | | //book/title | //book/price | Обирає всі елементи назви та ціни в елементі книги. | | Заголовок | ціна | Виберіть усі елементи назви та ціни в документі. | | /bookstore/book/title | //price | Вибирає всі елементи назви елемента книги, які належать до елемента книгарні, а також усі цінові елементи в документі. |
Функція XPath
Нижче наведено прокоментований список доповнень, специфічних для XPath, до XPath від основних функцій XPath та XSLT, включаючи описи, синтаксис, списки параметрів, типи результатів і джерела у відповідних рекомендаціях W3C.
- булев()
- стеля()
- choose()
- concat()
- містить()
- count()
- current() специфічно для XSLT
- document() специфічно для XSLT
- element-available()
- false()
- floor()
- format-number() специфічний для XSLT
- функція-доступна()
- generate-id() специфічно для XSLT
- id()
- key() XSLT-специфічний
- lang()
- останній()
- місцева назва()
- ім'я()
- Namespace-uri()
- Нормалізувати-простір()
- not()
- number()
- Позиція()
- round()
- старт-з()
- string()
- string-length()
- substring()
- substring-after()
- substring-before()
- sum()
- system-property() специфічна для XSLT
- Translate()
- true()
- unparsed-entity-url() специфічний для XSLT.
Практичні тести
Відкрийте Chrome і отримайте текстовий контент усіх посилань вкладки A за допомогою наступної команди:
Як показано нижче:
Посилання:Вхід за гіперпосиланням видно. |