• Где почитать документацию по Html Agility Pack?

    @MonkAlex
    C#, SQL, Delphi, C++ etc
    По идее, главное уметь строить XPath выражения.
    С ними очень легко получить любую информацию, которая хотя бы как то типизирована, к примеру:
    var pageNodes = document.DocumentNode.SelectNodes("//div[@id=\"pagination_related\"]//a");
                if (pageNodes != null)
                {
                  foreach (var node in pageNodes)
                    pages.Add(new Uri(this.Uri + node.Attributes[0].Value));
                  pages = pages.Distinct().ToList();
                }


    Из того, что не очевидно - для запроса данных внутри ноды надо использовать точку перед xpath:
    var chapterNodes = document.DocumentNode.SelectNodes("//div[@class=\"related_info\"]");
              if (chapterNodes != null)
              {
                foreach (var node in chapterNodes)
                {
                  var link = node.SelectSingleNode(".//h2//a");
                  var desc = node.SelectSingleNode(".//div[@class=\"related_tag_list\"]");
                  chapters.Add(new Chapter(new Uri(this.Uri, link.Attributes[0].Value), desc.InnerText));
                }
              }
    Ответ написан
    5 комментариев