如何在 html 敏捷包中从具有相同 class 的 html 获取所有 div

how to get all the divs from a html with the same class in html agility pack

我得到所有具有相同 class 名称的 div,但是当我将它们插入数据库并使用数据 table 处理键时,我使用查询 select top 1 ID,Link from myTable it returns all records, 说明我的代码有问题,需要用算法或者模式来提取我们需要的数据还是我们可以在从 htmldocument 中获取数据后直接访问。我拥有一个网站的所有 Html,我正在 selecting 52 个具有相同 class 的 div,但是当我 select 它们从我的数据库进入数据 table 它一次又一次地插入它们,如果我使用 Top 1 查询。它returns我所有的记录。我应该怎么办? 例如,这是我获取子类别的代码。我 selecting block 1 有与我的 div 相关的记录,也有其他 div 的数据。 .

doc.LoadHtml(Result);
 HtmlNodeCollection categorynode = null;

            categorynode = doc.DocumentNode.SelectNodes("//div[@class='block1']"); //| //div[@class='column even'] | //div[@class='column odd'] ");//"//div[@class='drop-menu']//a[@href]"
            if (categorynode != null)
            {
                foreach (HtmlNode Node in categorynode)
                {

                    string Html = Node.InnerHtml;
                    if (Html != null)
                    {

                        HtmlDocument Node2 = new HtmlDocument();
                        Node2.LoadHtml(Html);
                        foreach (HtmlNode subbnode in Node2.DocumentNode.SelectNodes("//div[@class='itemMenu level1']/a"))
                        {
                            string attt = subbnode.InnerText;
                            attt = attt.Replace("&amp", "&").Replace("&;", "&");
                            HtmlAttribute att = subbnode.Attributes["href"];
                            Regex r = new Regex(@"<a.*?href=(""|')(?<href>.*?)(""|').*?>(?<value>.*?)</a>");
                            //var regex=(new Regex(@"(?<=[\?&]id=)\d+(?=\&|\#|$)").Match(att.Value).Value);

                            string links = att.Value;
                            ModelClass _ms = new ModelClass();
                            _ms.link = links;
                            _ms.Name = attt;
                            _ms.CID = 0;
                            _ms.Type = "Sub Categories";
                            Controller cc = new Controller();
                            cc.InsertCategories(_ms);
                            Console.WriteLine("Sub Categories >>> " + _ms.Name);
                        }
                    }
                }

我必须使用算法或树来只获取我想要的记录吗?指导我,

在你的 selection 中使用 // div 双斜杠将 select 来自整个源的 div 与你的目标同名 div 并在斜杠前使用点 .// 将仅获得当前的 div