J'utilise HtmlAgilityPack pour trouver tous les éléments, les couleurs et les liens vers les produits sur un site Web. Je veux être en mesure de trouver un élément sur le site en tapant le nom et la couleur dans mon application. Jusqu'à présent, ce que je travaille est: L'application trouve des éléments en utilisant uniquement le nom de l'élément et retourne la dernière chose sur le site avec ce nom. Il y a plusieurs produits avec le même nom mais chacun a une couleur différente.C# - La chaîne publique ne stocke que la dernière valeur en dehors de la collection
Le problème survient lorsque vous incluez la couleur, car il s'agit d'un XPath différent, donc il est stocké dans une collection différente.
Voici mon code:
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
}
}
Merci qui fonctionne, mais le problème est qu'il retourne juste tout. Pour une raison quelconque, il ne me laisse pas rechercher une correspondance et renvoie l'élément correspondant qui a le même nom et la même couleur. – Andre