Я написал метод, который вернет все теги из вопроса переполнения стека. Единственная проблема в том, что последний элемент в коллекции всегда является пустой строкой.Почему всегда существует пустая строка в конце этого HtmlNodeCollection?
private static async Task<IEnumerable<string>> GetQuestionTags(string url)
{
var document = await Task.Factory.StartNew(() => new HtmlWeb().Load(url));
var nodes = document.DocumentNode.SelectNodes("//*[@id=\"question\"]/table//tr[1]/td[2]/div/div[2]//a");
return nodes.Select(node => node.InnerText);
}
Я мог просто удалить последний элемент в коллекции каждый раз, но я хотел бы, чтобы не делать этого.
Почему всегда существует пустая строка в качестве последнего элемента в коллекции и как я НЕ могу получить этот элемент?
Там другая ссылка, которую вы выбор; 'редактировать теги'. Я бы предположил, что у вас нет 10 000 репутации, текст пуст. Сделайте так, чтобы он выбирал span и * then * 'a' только для тегов. Или используйте SE API. Вот дополнительный элемент, который вы выбираете: http://i.imgur.com/coCLCVl.png – Rob
Вы можете попробовать добавить предикат, чтобы избежать выбора пустого '' element: '.... // a [normalize- space()] ' – har07
@Rob Для меня не существует span-tags-wrapper span ... – Albertay