.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); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д