Как взять значения с помощью XPath и положить в список?

Vladimirvolga

Пользователь
Регистрация
29.06.2017
Сообщения
134
Благодарностей
10
Баллы
18
Код:
Tab tab = instance.MainTab;
HtmlElement ab = tab.MainDocument.FindElementByXPath("//a[contains(@class, 'link link_theme_outer other-sites__outer-link i-bem')]", 0);

project.Variables["z_tehn_01"].Value = Convert.ToString(ab);
С помощью XPath находятся на странице 5 элементов.
В переменной оказывается вот это: ZennoLab.CommandCenter.HtmlElement.

Подскажите друзья, как список-то получить?
Спасибо заранее!
 

sydoow

Client
Регистрация
22.06.2011
Сообщения
289
Благодарностей
149
Баллы
43

LaGir

Client
Регистрация
01.10.2015
Сообщения
227
Благодарностей
927
Баллы
93
С помощью XPath находятся на странице 5 элементов.
Если все 5 находятся по тому пути, то так:
C#:
Tab tab = instance.MainTab;
var ab = tab.MainDocument.FindElementsByXPath("//a[contains(@class, 'link link_theme_outer other-sites__outer-link i-bem')]");
foreach (var el in ab.Elements){
    project.Lists["Список 1"].Add(el.InnerHtml);
}
 

Vladimirvolga

Пользователь
Регистрация
29.06.2017
Сообщения
134
Благодарностей
10
Баллы
18
Если все 5 находятся по тому пути, то так:
C#:
Tab tab = instance.MainTab;
var ab = tab.MainDocument.FindElementsByXPath("//a[contains(@class, 'link link_theme_outer other-sites__outer-link i-bem')]");
foreach (var el in ab.Elements){
    project.Lists["Список 1"].Add(el.InnerHtml);
}
Спасибо вам большое!
 

Vass

Client
Регистрация
03.02.2014
Сообщения
79
Благодарностей
10
Баллы
8
Если все 5 находятся по тому пути, то так:
C#:
Tab tab = instance.MainTab;
var ab = tab.MainDocument.FindElementsByXPath("//a[contains(@class, 'link link_theme_outer other-sites__outer-link i-bem')]");
foreach (var el in ab.Elements){
    project.Lists["Список 1"].Add(el.InnerHtml);
}
А если надо собрать href?
 

Vass

Client
Регистрация
03.02.2014
Сообщения
79
Благодарностей
10
Баллы
8
Поковырялся и сделал такого монстра

string strXPath = "//div[@class='txt']//p[1]/a";

HtmlElementCollection colElements = instance.ActiveTab.FindElementsByXPath(strXPath);
project.SendInfoToLog("Всего элементов найдено: " + colElements.Count);
for (int i=0; i<colElements.Count;i++) {
HtmlElement elElement = colElements.GetByNumber(i);
project.Lists["temp"].Add(elElement.GetAttribute("href"));
}

Сбор xpath в список если с разными параметрами атрибута
 

SergSh

Client
Регистрация
10.05.2017
Сообщения
541
Благодарностей
395
Баллы
63
А если надо собрать href?
Код:
Tab tab = instance.MainTab;
var ab = tab.MainDocument.FindElementsByXPath("//a");
foreach (var el in ab.Elements)
{
    string href = el.GetAttribute("href");
    if(!string.IsNullOrEmpty(href))
    {
        project.Lists["Список 1"].Add(href);
    }
}
 
  • Спасибо
Реакции: Vass

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