2011-09-28 114 views
1

我使用htmlagility DLL來獲取所有<div>標籤是同一類屬性,開發一個asp.net應用程序中,我..
如何讓誰擁有從整個HTML頁面同一類別的所有元素,
我越來越頂部1 div誰有class ='myclass'但是,
我的情況我想要所有具有'myclass'類的div標籤。如何從HTML中獲得具有相同類屬性的所有元素?

var vardoc = web.Load("<any website url>"); 
var varmyclass = doc.DocumentNode.SelectSingleNode("//div[@class='myclass']"); 

當我用上面的方法,然後我得到了「MyClass的」內的HTML內容,但在我的HTML內容還有誰擁有一流的「MyClass的」很多div標籤。 我想獲得所有<div>誰使用HTMLagility或其他

回答

1

在這種情況下不要選擇單個節點。

您正在使用SelectSingleNode,它將只返回一個節點。

使用SelectNodes代替:

var varmyclass = doc.DocumentNode.SelectNodes("//div[@class='myclass']"); 
+0

非常感謝@Oded。偉大的答案。 –

0

你幾乎搜索這些節點的XML文檔。

首先,您要選擇一個只返回1的節點。您需要使用SelectNodes。

例如:

var varmyclass = doc.DocumentNode.SelectNodes("//div[@class='myclass']"); 

更新 - 刪除我的Xpath的建議,因爲它,我認爲這將不工作...

+0

你好@瑞恩它不工作。它變得錯誤.. –

0

兩個問題,第一個是,你應該使用SelectNodes()代替正如其他答案指出的那樣,因爲你想選擇多個節點。

另外,您的XPath有點限制。它只會得到div元素,它只有一個類,myclass但不包括具有多個類的元素。我懷疑你也想包括這些。而不是檢查班級是否平等,檢查它是否包含它。

var xpath = "//div[contains(@class,'myclass')]"; 
var query = doc.DocumentNode.SelectNodes(xpath); 
相關問題