.NET 4.x HtmlAgilityPack шалит - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте. Как-то странно ведет себя HtmlAgilityPack, или я дурак. У меня переберется список нодов и извлекается из них некие данные, но она каждый мне выдает одинаковые данные и они ровняются данным из самого первого нода. Хотя, если заглянуть в ноду, то видно что данные каждый раз разные, но строка

node.SelectSingleNode("XPath")

все равно выдает данные из первой ноды. Что я делаю не так? Код:
var htmldoc = new HtmlAgilityPack.HtmlDocument();
var s = await Steam.GetGameList("29", i.ToString(), "Price_ASC");
htmldoc.LoadHtml(s.RestResponse.Content);
var nodes = htmldoc.DocumentNode.SelectNodes("//*[@id='search_result_container']/div[2]/a");
foreach (var node in nodes)
{
    Game g = new Game(); 
    g.link = node.Attributes["href"].Value;
    g.name = node.SelectSingleNode("//div[2]/span").InnerText;
    g.price = node.SelectSingleNode("//div[6]").InnerText.Trim();
    g.image = node.SelectSingleNode("//div[1]/img").Attributes["src"].Value;
    listGame.Add(g);
}
Класс Game:
public class Game
{
    public string name { get; set; }
    public string price { get; set; }
    public string image { get; set; }
    public string link { get; set; }
 
    public override string ToString()
    {
        return name;
    }
}

Решение задачи: «.NET 4.x HtmlAgilityPack шалит»

textual
Листинг программы
            int i = 0;
            foreach (var node in nodes)
            {
                Game g = new Game();
                g.link = node.Attributes["href"].Value;
                g.name = node.SelectNodes("//div[2]/span")[i].InnerText;
                g.price = node.SelectNodes("//div[6]")[i].InnerText.Trim();
                g.image = node.SelectNodes("//div[1]/img")[i++].Attributes["src"].Value;
                listGame.Add(g);
 
                MessageBox.Show(g.link + Environment.NewLine +
                                g.name+ Environment.NewLine +
                                g.price + Environment.NewLine +
                                g.image + Environment.NewLine);
            }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.917 из 5