HTML AGILITY PACK Парсинг Div Blocks

.net c# html html-agility-pack

Вопрос

Мне нужно разбирать предметы из интернет-магазина - мне нужно их имя и цена. Каждый элемент-блок находится в другом div в div-catalog этих элементов.
Поэтому я пробовал это, и это работает, но я бы предпочел разобрать как имя, так и цену в 1 петле. Как я могу это сделать? Благодаря!

        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");
            }
        }

Принятый ответ

Поскольку SelectNodes использует XPATH-выражение , вы можете просто использовать объединение в своем фильтре класса, используя «|», что приведет к SelectNodes одной коллекции. Обратите внимание, что вам все равно нужно будет проверить, какой элемент вы выбрали в цикле for-loop.



Related

Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему