2012-04-16 118 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