仅获取父节点的子节点

Get only child nodes of a parent node

我尝试使用 html 敏捷包。基本工作正常,只有当我尝试获取一个部分的子节点时,我才不会得到所有节点,这个 class 'dealer-offer' 等于它将在哪个父节点中。

这是我使用的代码:

private void getListOfDiv(string html, string classname)
    {

        if (html != null)
        {

            var doc = new HtmlAgilityPack.HtmlDocument();
            doc.LoadHtml(html);

            var divProduktkategorie = doc.DocumentNode.SelectSingleNode("//div[@class='" + classname + "']");

            //this.txtHtmlCode.Text = divProduktkategorie.InnerHtml;
            //return;
            int i = 1;

            foreach( var divAngebote in divProduktkategorie.SelectNodes("//div[@class='dealer-offer']"))
            {
                this.listBox1.Items.Add(i + ": " + classname);
                this.txtHtmlCode.AppendText(divAngebote.OuterHtml);
                i++;
            }
        }
    }

Wenn I return divProduktkategorie 到 outputfild,然后我只得到 3 个位置,它们在这个单节点下,但是我开始循环,然后我得到每个节点 class 'dealer-offer' 而不仅仅是3个位置。

我错在哪里?不是我自己找的。

感谢您的帮助

尝试获取具有正确相对路径的 3 个节点,然后只对它们进行 foreach。不要在 divProduktkategorie 参考文献中搜索它们。

private void getListOfDiv(string html, string classname)
{

    if (html != null)
    {

        var doc = new HtmlAgilityPack.HtmlDocument();
        doc.LoadHtml(html);

        var divProduktkategorie = doc.DocumentNode.SelectSingleNode("//div[@class='" + classname + "']//div[@class='dealer-offer']");

        //this.txtHtmlCode.Text = divProduktkategorie.InnerHtml;
        //return;
        int i = 1;

        foreach( var divAngebote in divProduktkategorie)
        {
            this.listBox1.Items.Add(i + ": " + classname);
            this.txtHtmlCode.AppendText(divAngebote.OuterHtml);
            i++;
        }
    }
}