使用HtmlAgilityPack获取元素

时间:2012-04-16 11:48:28

标签: c# winforms html-agility-pack

我想从我的html文档中获取一个没有id或名称的div,但是有一个独特的样式标记。

以下是我的尝试:

        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的任何标记。这样做的正确方法是什么?

2 个答案:

答案 0 :(得分:2)

尝试XPath:

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

答案 1 :(得分:1)

而不是

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

尝试使用Name属性:

if (node.Name == "div")

我不熟悉HtmlAgilityPack,但经过一番阅读后,您可能会发现this site有帮助。