私はHtmlAgilityPackを使用して、Webサイト上のすべてのアイテム、色、製品へのリンクを検索しています。私は自分のアプリケーション内に名前と色を入力して、ウェブサイト上のアイテムを見つけることができるようにしたいと考えています。 アプリケーションはアイテム名のみを使用してアイテムを見つけ、その名前のウェブサイト上で最後のものを返します。 同じ名前の複数の商品がありますが、それぞれ異なる色をしています。C# - パブリックストリングはコレクションの外の最後の値のみを格納します
色は別のコレクションに格納されているため、別のXPathに含まれているため、色を含むと問題が発生します。あなたが継続的にループ内でテキストボックスのText
プロパティを設定しているので、これは(ので、各項目は継続的に、前に上書きされます)です
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
}
}
感謝を。何らかの理由でそれは私が一致を探して、同じ名前と色を持つ一致するアイテムを返すことはできません。 – Andre