Используя Xpath взять из переменной значения

one

Client
Регистрация
22.09.2015
Сообщения
6 792
Благодарностей
1 264
Баллы
113
GETом кладу в переменную результат. Как из нее, используя Xpath взять все значения и положить в список (переменную)? Покажите плс примеры.
 

inotoxic

Client
Регистрация
20.04.2015
Сообщения
354
Благодарностей
162
Баллы
43
Код:
IZennoList list = project.Lists["List"]; // список проекта, в который класть результат
Tab tab = instance.ActiveTab;
HtmlElementCollection elements = tab.FindElementsByXPath("//a[contains(@class, 'results-item__link')]");
list.AddRange(elements.Select(e => e.GetAttribute("innerhtml")));
 
  • Спасибо
Реакции: barkasian и one

one

Client
Регистрация
22.09.2015
Сообщения
6 792
Благодарностей
1 264
Баллы
113
Xpath работает только с табом?
 

inotoxic

Client
Регистрация
20.04.2015
Сообщения
354
Благодарностей
162
Баллы
43
  • Спасибо
Реакции: orka13 и one

one

Client
Регистрация
22.09.2015
Сообщения
6 792
Благодарностей
1 264
Баллы
113

inotoxic

Client
Регистрация
20.04.2015
Сообщения
354
Благодарностей
162
Баллы
43
)) по ссылке, как раз таки вторая строка сниппета - указывает на переменную с кодом после гет запроса

Код:
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument(); // создание объекта
var template_html = project.Variables["Htnl_Code"].Value; // грузим наш код из гет-запроса http://hotline.ua/adult-pepelnicy/brasstico-4114/discussion/
// условие xpath
var var_xpath1 = @"//ul[contains(@class, 'breadcrumbs cell-')]/li[2]/a";
doc.LoadHtml(template_html); // грузим DOM текст (из переменной template_html) в объект doc
var Nodes_list_1 = doc.DocumentNode.SelectSingleNode(var_xpath1); //  получаем <a href="/adult/">Товары для взрослых</a>
if (Nodes_list_1 != null)
{
project.Variables["Kategoria"].Value = Nodes_list_1.InnerText; //  получаем: Товары для взрослых
project.Variables["Kategoria_href"].Value = Nodes_list_1.GetAttributeValue("href", ""); //  получаем: /adult/
}
else
{
project.SendInfoToLog("не нашли елемент", true);
project.Variables["Kategoria"].Value = ""; //  обнуляем значение
project.Variables["Kategoria_href"].Value = ""; //  обнуляем значение
}
return "ok";
 

one

Client
Регистрация
22.09.2015
Сообщения
6 792
Благодарностей
1 264
Баллы
113
) Все, понял, благодарю!
 

serg1208

Client
Регистрация
17.04.2018
Сообщения
331
Благодарностей
15
Баллы
18
)) по ссылке, как раз таки вторая строка сниппета - указывает на переменную с кодом после гет запроса

Код:
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument(); // создание объекта
var template_html = project.Variables["Htnl_Code"].Value; // грузим наш код из гет-запроса http://hotline.ua/adult-pepelnicy/brasstico-4114/discussion/
// условие xpath
var var_xpath1 = @"//ul[contains(@class, 'breadcrumbs cell-')]/li[2]/a";
doc.LoadHtml(template_html); // грузим DOM текст (из переменной template_html) в объект doc
var Nodes_list_1 = doc.DocumentNode.SelectSingleNode(var_xpath1); //  получаем <a href="/adult/">Товары для взрослых</a>
if (Nodes_list_1 != null)
{
project.Variables["Kategoria"].Value = Nodes_list_1.InnerText; //  получаем: Товары для взрослых
project.Variables["Kategoria_href"].Value = Nodes_list_1.GetAttributeValue("href", ""); //  получаем: /adult/
}
else
{
project.SendInfoToLog("не нашли елемент", true);
project.Variables["Kategoria"].Value = ""; //  обнуляем значение
project.Variables["Kategoria_href"].Value = ""; //  обнуляем значение
}
return "ok";
этот код работает только с HTMLAgilityPack ?
 

inotoxic

Client
Регистрация
20.04.2015
Сообщения
354
Благодарностей
162
Баллы
43
Да
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument(); // создание объекта
 
  • Спасибо
Реакции: one

Markoonij

Client
Регистрация
13.10.2020
Сообщения
68
Благодарностей
3
Баллы
8
В переменной dom_ids лежит DOM страницы.
Нужно из этой переменной xpath'ем выдернуть значение и положить в переменную sport.
Подскажите, как это можно реализовать.
 

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