Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 75|Ответ: 0

Используйте XPath для получения XML, HTML-содержимого документа

[Скопировать ссылку]
Опубликовано3 дня назад | | | |
XPath — это технология, которая точно и эффективно задаёт и извлекает необходимую информацию из данных древесных структур, таких как HTML и XML.

Обзор XPath

XPath — это язык, используемый для указания и извлечения определённых элементов и атрибутов в XML- или HTML-дереве документов. Поскольку веб-страницы часто состоят из HTML, XPath широко используется в различных сценариях, таких как веб-скрейпинг, поиск данных и поиск данных в XML.

Типичное использование следующее:

  • Извлечение данных в веб-краулерах: XPath используется для автоматического получения конкретных данных, таких как информация о продуктах на сайтах электронной коммерции или заголовки статей на новостных сайтах.
  • Поиск и обработка данных в XML: в бизнес-системах и обработке связей данных данные часто обмениваются в формате XML. Используя XPath, вы можете эффективно извлекать необходимую информацию из больших объёмов XML-данных.
  • Разбор ответов API (формат XML): при использовании API на базе XML, таких как 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

Выберите узел

XPath использует выражения пути для выбора узлов в XML-документе. Узлы выбираются следуя пути или шагу. Наиболее полезные выражения путей приведены ниже:
выражение
описание
NodenameВыбирает все дочерние узлы этого узла.
/Выберите из корневого узла (возьмём дочерний узел).
//Выбирает узлы в документе из текущего узла соответствующего выбора, независимо от их расположения (возьмём потомочные узлы).
.Выберите текущий узел.
..Выберите родительский узел текущего узла.
@Выберите атрибут.

В таблице ниже мы перечислили некоторые выражения путей вместе с результатами этих выражений:
Выражения пути
результат
книжный магазинВыберите все узлы с названиями 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()
  • last()
  • местное имя()
  • name()
  • Namespace-uri()
  • нормализовать пространство()
  • not()
  • число()
  • Позиция()
  • round()
  • начинает с()
  • String()
  • длина строки()
  • substring()
  • substring-after()
  • substring-before()
  • sum()
  • system-property() специфичный для XSLT
  • Перевод()
  • true()
  • unparsed-entity-url() специфичный для XSLT

Практические тесты

Откройте Chrome и получите текстовые содержимое всех ссылок на вкладку A с помощью следующей команды:
Как показано ниже:



Ссылка:Вход по гиперссылке виден.




Предыдущий:[Драматург] (3) Автоматизированное тестирование для выявления исключений из ошибок
Следующий:.NET/C# вызывает сервис интерфейса перевода текста Azure Translator
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com