XPath в первом выделении читает «выбрать все элементы документа, которые имеют атрибут с именем class со значением tim_new». Содержимое в скобках - это не то, что вы возвращаете, это критерии, которые вы применяете для поиска.
У меня нет пакета Agility для HTML, но если вы пытаетесь запросить div, в качестве текста которого указано «NSE:», ваш XPath для второго запроса должен быть просто «// div», тогда хочу фильтровать с помощью LINQ.
Что-то вроде
var nodes =
doc.DocumentNode.SelectNodes("//div[text()]").Where(a => a.InnerText.IndexOf("NSE:") > -1);
Итак, на английском языке: «Верните все элементы div, которые сразу содержат текст, в LINQ, а затем убедитесь, что значение внутреннего текста содержит NSE:».
Опять же, я не уверен, что синтаксис идеален, но это идея.
XPath "// div [@NSE:]" вернул бы все div, которые имеют и имеют атрибут NSE:, что в любом случае было бы недопустимым, поскольку ":" не допускается в имени атрибута. Вы ищете текст элемента, а не один из его атрибутов.
Надеюсь, это поможет. '
Примечание. Если у вас есть вложенные элементы div, содержащие оба текста, как в <div>NSE: some text<div>NSE: more text</div></div>
, вы получите дублированные результаты.