使用 HtmlAgilityPack 获取元素

本文关键字:元素 获取 HtmlAgilityPack 使用 | 更新日期: 2023-09-27 18:31:11

我想从我的html文档中获取一个div,它没有ID或名称,但有一个唯一的样式标签。

这是我尝试过的:

        foreach (HtmlNode node in myDocument.DocumentNode.DescendantNodes())
        {
            if (node.OuterHtml.Contains("div"))
            {
                HtmlAttribute att = node.Attributes["style"];
                if (att != null)
                {
                    if (att.ToString() == "font-size:16px;padding:4px 8px 0")
                    {
                        targetDiv = node;
                    }
                }
            }
           }

首先,我得到了文档中的所有节点,然后我尝试使用以下方法仅过滤掉div:

if (node.OuterHtml.Contains("div"))

但是,这实际上并不是过滤掉div,而是选择任何包含div的标签。正确的方法是什么?

使用 HtmlAgilityPack 获取元素

试试 XPath:

var nodes = myDocument.DocumentNode.SelectNodes("//div[@style='font-size:16px;padding:4px 8px 0']")

而不是

if (node.OuterHtml.Contains("div"))

尝试使用 Name 属性:

if (node.Name == "div")

我不熟悉HtmlAgilityPack,但是在稍微阅读之后,您可能会发现这个网站很有帮助。