Помогите с xPath, как взять значение?

  • Автор темы Автор темы backoff
  • Дата начала Дата начала

backoff

Client
Регистрация
20.04.2015
Сообщения
6 355
Реакции
6 640
Баллы
113
Помогите с xPath, нужен путь, который будет брать только цифры

страница - https://porkbun.com/checkout/search...age=&csrf_pb=ab483ce9b7a37cbdb5cc1fda503c6201

нужно сделать xpath который будет брать значения ниже 10
моих знаний на это не хватает, хелп

вот что надо брать http://joxi.ru/D2PQ94wUqgVbMA
xpath не умеет отделять текст/символы от цифр, сначала нужно парсить вместе с текстом $ и только потом отдельно делать обработку цен.
 
вот такой костыльный вариант собирает по строчкам
C#:
Развернуть Свернуть Копировать
/html/body/div[3]/div[4]/div[2]/div/div/div[5]/div[2]/div/div/*

там где div[2] - поставить счетчик или поставить * тогда соберет все в список

собирает только цену, там где div[7] прогнать по счетчику
C#:
Развернуть Свернуть Копировать
/html/body/div[3]/div[4]/div[2]/div/div/div[5]/div[7]/div/div/*/span/text()

это прям вообще костыль, на скорую как смог найти)
 
только с использованием регулярок (может и через api, не смотрел). вот накидал (создай список с именем "Список 1")

C#:
Развернуть Свернуть Копировать
IZennoList spisok = project.Lists["Список 1"];
var sp = instance.ActiveTab.FindElementsByXPath("//span[@class='childContent']/span/small/parent::span/parent::span");
Regex r = new Regex(@"\$\d+.\d\d(?=\ /\ year)");

foreach(var s in sp) spisok.Add(r.Match(s.InnerText).Value);
 
Сразу берет цену. Привязываемся к плюсику.

Код:
Развернуть Свернуть Копировать
var tab = instance.ActiveTab;
var price = tab.FindElementByXPath(@"//span[@class='glyphicon glyphicon-plus']/ancestor::div[@id='searchResultRowOptions_checktest_equipment']/preceding::div[1]/descendant::span[@class='childContent']", 0).GetAttribute("innertext").ToString().Split('/')[0].Split('$').Last();
project.SendInfoToLog(price);
 

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