HTML AGILITY PACK Analyse des blocs div

.net c# html html-agility-pack

Question

J'ai besoin d'analyser des articles dans une boutique en ligne - j'ai besoin de leur nom et de leur prix. Chaque bloc d'éléments est situé dans une div différente dans un div-catalog de ces articles.
J'ai donc essayé cela et cela fonctionne un peu, mais je préférerais analyser le nom et le prix en une boucle. Comment pourrais-je le faire? Merci!

        var url = "http://bestaqua.com.ua/catalog/filtry-obratnogo-osmosa";
        HtmlWeb web = new HtmlWeb();
        HtmlDocument HtmlDoc = web.Load(url);
        var RootNode = HtmlDoc.DocumentNode;
        foreach (HtmlNode node in 
HtmlDoc.DocumentNode.SelectNodes("//div[@class='catalog_blocks']"))
        {
            foreach (HtmlNode item_name in 
node.SelectNodes("//div[@class='catalog_blocks-item-name']"))
            {
                    string name = item_name.InnerText;
                    System.Diagnostics.Debug.Write("NAME :" + name + "\n" );
            }
            foreach (HtmlNode item_price in 
node.SelectNodes("//span[@class='price-new']"))
            {
                string price = item_price.InnerText;
                System.Diagnostics.Debug.Write("PRICE: " + price + "\n");
            }
        }

Réponse acceptée

Puisque SelectNodes utilise une expression XPATH , vous pouvez simplement utiliser une union dans votre filtre de classe à l'aide de "|", ce qui entraînera le bouclage d'une seule collection. Notez que vous devez toujours vérifier quel élément vous avez réellement sélectionné dans la boucle for.




Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi