【发布时间】:2017-03-23 18:21:43
【问题描述】:
我正在使用 HtmlAgilityPack 查找网站上的所有项目、颜色和产品链接。我希望能够通过在我的应用程序中输入名称和颜色来在网站上找到一个项目。
到目前为止,我的工作是: 应用程序仅使用项目名称查找项目,并返回网站上具有该名称的最后一个项目。有多种产品名称相同但颜色不同。
包含颜色时会出现问题,因为它位于不同的 XPath 中,因此存储在不同的集合中。
这是我的代码:
HtmlNodeCollection collection = doc.DocumentNode.SelectNodes("//*[contains(@class,'inner-article')]//h1//a");
HtmlNodeCollection collection2 = doc.DocumentNode.SelectNodes("//*[contains(@class,'inner-article')]//p//a");
foreach (var node2 in collection2)
{
string coloursv = node2.InnerHtml.ToString();
strColour = coloursv;
//txtLog.Text += Environment.NewLine + (DateTime.Now.ToString("hh:mm:ss")) + str; - This code returns all colours (If code is ran outside of collection then only last colour in string is returned.
}
foreach (var node in collection)
{
string href = node.Attributes["href"].Value;
var itemname = node.InnerHtml.ToString();
if (itemname.Contains(txtKeyword.Text))
{
txtLog.Text = (DateTime.Now.ToString("hh:mm:ss")) + " - Item Found: " + href + " " + itemname + " " + strColour; //Successfully returns item name, colour and link but always gives last availible on website
}
}
【问题讨论】:
标签: c# html-agility-pack