HTMLAgilityPack - 通过 class 获取 class 中的元素

HTMLAgilityPack - Get element in class by class

我希望从下面显示的 'listicle-page' class 中的 H2(突出显示的)元素中获取值。目前代码获取 DIV 元素中的所有值,而我只需要获取 H2 中包含的值 class 下面。

考虑以下 HTML:

请看下面的代码 -

private void getFact()
        {
            HtmlAgilityPack.HtmlWeb web = new HtmlAgilityPack.HtmlWeb();
            HtmlAgilityPack.HtmlDocument doc = web.Load("https://www.rd.com/culture/interesting-facts/");

            var headerNames = doc.DocumentNode.SelectNodes("//div[@class='listicle-page']").ToList();

            foreach(var item in headerNames)
            {
                MessageBox.Show(item.InnerText);
            }
        }

您的 XPath //div[@class='listicle-page'] 匹配 div 节点及其所有后代。如果您只需要 select 子 h2 节点,则通过添加 /h2:

明确指定它
//div[@class='listicle-page']/h2