如何從HTML中獲取具有相同類屬性的所有元素?


我開發了一個asp.net應用程序,因為我使用htmlagility dll來獲取所有<div>標籤,這些標籤是相同的類屬性。
如何從整個html頁面獲取所有具有相同類的元素,
我得到了排名前1的div,他們有類​​='myclass'但是在,
我的情況我想要所有擁有'myclass'類的div標籤。

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

當我使用上面的方法然後我得到'myclass'的內部html內容但在我的html內容中有許多div標籤誰有類'myclass'。我想讓所有<div>使用HTMLagility或其他人擁有相同的類

一般承認的答案

在這種情況下,請勿選擇單個節點。

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

請改用SelectNodes

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

熱門答案

兩個問題,第一個問題是你應該使用SelectNodes() ,因為你想要選擇多個節點,因為其他答案已經指出了。

此外,您的XPath有點限制。它只會獲得只有一個類的div元素, myclass但不包括那些具有多個類的類。我懷疑你也希望包括這些。而不是檢查類是否相等,檢查它是否包含它。

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




許可下: CC-BY-SA
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因