Парсинг через XPath из переменной

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

Jufel

Client
Регистрация
12.06.2018
Сообщения
1 568
Реакции
1 094
Баллы
113
Подскажите как спарсить данные через XPath. Со страницы паршу вот таким образом:
instance.ActiveTab.FindElementsByXPath("//...");
Но сейчас я кладу страницу get запросом в переменную и мне нужно уже из этой переменной спарсить данные. Что-то типа такого
string source = project.Variables["get"].Value;
source.ActiveTab.FindElementsByXPath("//...");
Только не пойму как это правильно реализовать.
 
C#:
Развернуть Свернуть Копировать
        string result = "" ; List<string> lst_Find = new List<string>();
        try { lst_Find = ZennoPoster.Parser.ParseByXpath("строка с данными", "xpath", "атрибут" ).ToList(); } catch{} // парсинг элементов
        int max_el = lst_Find.Count;
        if (number>=max_el)  number = 0;
        if (max_el >0 ) result = lst_Find[number];

выдает первый элемент или же можно работать со списком lst_Find
 
  • Спасибо
Реакции: Jufel
Единственное не понял, что является атрибутом в методе ZennoPoster.Parser.ParseByXpath. У меня есть готовый xpath путь, но этот метод только с обязательными 3мя значениями.
 
Единственное не понял, что является атрибутом в методе ZennoPoster.Parser.ParseByXpath. У меня есть готовый xpath путь, но этот метод только с обязательными 3мя значениями.
C#:
Развернуть Свернуть Копировать
        string source = project.Variables["get"].Value;
        string result = "" ; List<string> lst_Find = new List<string>();
        try { lst_Find = ZennoPoster.Parser.ParseByXpath(source , "//..." , "innertext" ).ToList(); } catch{} // парсинг элементов
        int max_el = lst_Find.Count;
        if (number>=max_el)  number = 0;
        if (max_el >0 ) result = lst_Find[number];
 
  • Спасибо
Реакции: Jufel
C#:
string source = project.Variables["get"].Value;
string result = "" ; List<string> lst_Find = new List<string>();
try { lst_Find = ZennoPoster.Parser.ParseByXpath(source , "//..." , "innertext" ).ToList(); } catch{} // парсинг элементов
int max_el = lst_Find.Count;
if (number>=max_el) number = 0;
if (max_el >0 ) result = lst_Find[number];
Не подскажешь, в чем причина может быть?, выдает вот такие ошибки:
Компиляция кода Ошибка в действии "CS0103" "The name 'number' does not exist in the current context". [Строка: 4; Cтолбец: 13]
Компиляция кода Ошибка в действии "CS0103" "The name 'number' does not exist in the current context". [Строка: 4; Cтолбец: 30]
Компиляция кода Ошибка в действии "CS0103" "The name 'number' does not exist in the current context". [Строка: 5; Cтолбец: 43]
 
такая переменая создана ?
 
этот код из функции. number входной параметр. если использовать в кубике, то надо ее создать в начале. int number = 0; ну или какой там элемент надо найти
 
  • Спасибо
Реакции: Platon
если код в общем коде, то то её в любои случае надо объявить в кубике , ты ведь её как то передаёшь
неа. она по умолчанию объявлена нулем :) обычно же первый элемент нужен
 
значит не объявлена, если код запустить на сравнениии просто в кубике то всё работает
 
В переменной dom_ids лежит DOM страницы.
Нужно из этой переменной xpath'ем выдернуть значение и положить в переменную sport.
Подскажите, как это можно реализовать.
 
В переменной dom_ids лежит DOM страницы.
Нужно из этой переменной xpath'ем выдернуть значение и положить в переменную sport.
Подскажите, как это можно реализовать.
Если 1 элемент
C#:
Развернуть Свернуть Копировать
string source = project.Variables["dom_ids"].Value;
List<string> lst_Find = new List<string>();
lst_Find = ZennoPoster.Parser.ParseByXpath(source , "//xPath" , "innertext" ).ToList();
project.Variables["sport"].Value = lst_Find[0];
 
  • Спасибо
Реакции: Markoonij

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