2012-04-16 100 views
0

我想从我的html文档中获取一个没有id或名称但具有唯一样式标记的div。使用HtmlAgilityPack获取元素

这里是我的尝试:

 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")) 

然而,这ISN”实际上筛选出了div,但选择了其中有div的任何标签。什么是正确的方法来做到这一点?

回答

2

尝试的XPath:

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

我使用了'myDocument.DocumentNode.Descendants(“div”)'但是这个也行得通。 – TheGateKeeper 2012-04-16 12:11:26

1

不是

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

尝试使用德Name属性:

if (node.Name == "div") 

我不熟悉HtmlAgilityPack,附近有一座小读书然而之后,你可能会发现this site有帮助。

+0

是的,我买了名称实际上是指名称属性而不是标签。我最后使用了'myDocument.DocumentNode.Descendants(“div”)',它工作。 – TheGateKeeper 2012-04-16 12:07:36