Для данного узла <a>
, чтобы получить показанный текст, попробуйте .InnerText
.
В данный момент вы используете содержимое всех тегов <a>
в документе. Попробуйте сузить круг до тех, которые вам нужны. Посмотрите на другие элементы, которые содержат конкретные теги <a>
, которые вы ищете. Например, они все сидят внутри <div>
с определенным классом?
например. если вы найдете интересующие вас теги <a>
внутри <div class="foolinks">
, то вы можете сделать что-то вроде: -
IEnumerable<HtmlNode> threadLinks = doc.DocumentNode.Descendants("div")
.First(dn => dn.Attributes["class"] == "foolinks").Descendants("a");
- ОБНОВЛЕНИЕ -
Учитывая информацию в вашем комментарии, я бы попробовал: -
IEnumerable<HtmlNode> threadLinks = doc.DocumentNode.Descendants("div")
.First(dn => dn.Id == "exerciseDetails").Descendants("a");
- ОБНОВЛЕНИЕ -
Если у вас возникли проблемы с тем, чтобы заставить его работать, попробуйте разбить его на присваивания переменных и пройтись по коду, проверяя каждую переменную, чтобы убедиться, что она соответствует вашим ожиданиям.
например,
var divs = doc.DocumentNode.Descendants("div");
var div = divs.FirstOrDefault(dn => dn.Id == "exerciseDetails");
if (div == null)
{
// couldn't find the node - do whatever is appropriate, e.g. throw an exception
}
IEnumerable<HtmlNode> threadLinks = div.Descendants("a");
Кстати, я не уверен, соответствует ли свойство .Id
атрибуту id узла, как вы предлагаете. Если нет, вы можете попробовать dn => dn.Attributes["id"] == "exerciseDetails"
.