xPath. Как взять последний элемент?

  • Автор темы Автор темы timoxa949
  • Дата начала Дата начала
  • Теги Теги
    xpath

timoxa949

Client
Регистрация
16.11.2018
Сообщения
158
Реакции
27
Баллы
28
Привет всем, прошу совета как правильно составить запрос xPath чтобы получить последний элемент, сломал голову, спасибо.
На примере, мне нужно взять только название бренда:


Составил запрос, но он берет категорию и брэнд:

//div[@data-zone-name="breadcrumb"]/a[last()]

61420

Заранее спасибо за помощь!
 
Привет всем, прошу совета как правильно составить запрос xPath чтобы получить последний элемент, сломал голову, спасибо.
На примере, мне нужно взять только название бренда:


Составил запрос, но он берет категорию и брэнд:

//div[@data-zone-name="breadcrumb"]/descendant::a/descendant::span[@itemprop="name"][last()]


Заранее спасибо за помощь!
Тут подробно расписано именно то что нужно
 
команды с номерами работают относительно родителя к дочкам. вот пример.

61421


то есть в существующем пути надо получить родителя этих элементов и уже от родителя применить last()

вот пример на скорую руку. //div[@data-zone-name="breadcrumb"]/ancestor::ul/li[last()]//a
допилить напильником до нужного варианта.
 
  • Спасибо
Реакции: ruthless и timoxa949
  • Спасибо
Реакции: timoxa949
команды с номерами работают относительно родителя к дочкам. вот пример.

Посмотреть вложение 61421

то есть в существующем пути надо получить родителя этих элементов и уже от родителя применить last()

вот пример на скорую руку. //div[@data-zone-name="breadcrumb"]/ancestor::ul/li[last()]//a
допилить напильником до нужного варианта.

Работает, спасибо!
 
Спарсить еще проще, перед фирмой есть слово все товары.
1597066498757.png1597066571972.png

(?<=Все\ товары).*?(?=</span>) там вариантом может быть очень много
 
  • Спасибо
Реакции: timoxa949
команды с номерами работают относительно родителя к дочкам. вот пример.

Посмотреть вложение 61421

то есть в существующем пути надо получить родителя этих элементов и уже от родителя применить last()

вот пример на скорую руку. //div[@data-zone-name="breadcrumb"]/ancestor::ul/li[last()]//a
допилить напильником до нужного варианта.
А есть ли вариант найти второй или третий элемент с конца ?
 
  • Спасибо
Реакции: backoff, orka13 и Deisler
А если брать, допустим, второй с конца и вдруг в какой-то момент будет всего 1 элемент - то что будет?
 
А если брать, допустим, второй с конца и вдруг в какой-то момент будет всего 1 элемент - то что будет?
Будет выход по ошибке, так как такого элемента нету.
 
Последнее редактирование:
  • Спасибо
Реакции: Phoenix78 и seregakot
Понял теперь свою ошибку почему не получалось , спасибо за примеры
 
взять только название бренда
Привет. Как вариант, так можно - //ul[contains(@itemtype, 'BreadcrumbList')]/li[2] или всегда только последний элемент - //ul[contains(@itemtype, 'BreadcrumbList')]/li[last()]
 
  • Спасибо
Реакции: seregakot

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)