.NET 4.x HtmlAgilityPack шалит - C#
Формулировка задачи:
Здравствуйте. Как-то странно ведет себя HtmlAgilityPack, или я дурак.
У меня переберется список нодов и извлекается из них некие данные, но она каждый мне выдает одинаковые данные и они ровняются данным из самого первого нода. Хотя, если заглянуть в ноду, то видно что данные каждый раз разные, но строка Класс Game:
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);
}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);
}