C# 如何从具有相同类属性的HTML中获取所有元素?

C# 如何从具有相同类属性的HTML中获取所有元素?,c#,html,xpath,html-agility-pack,C#,Html,Xpath,Html Agility Pack,我正在开发一个asp.net应用程序,因为我使用htmlagility dll获取所有标记,这些标记都是相同的类属性。。 如何从整个html页面中获取具有相同类的所有元素, 我得到了拥有class='myclass'但在, 在我的案例中,我希望所有具有“myclass”类的div标记 var vardoc = web.Load("<any website url>"); var varmyclass = doc.DocumentNode.SelectSingleNode("//

我正在开发一个asp.net应用程序,因为我使用htmlagility dll获取所有
标记,这些标记都是相同的类属性。。
如何从整个html页面中获取具有相同类的所有元素,
我得到了拥有class='myclass'但在,
在我的案例中,我希望所有具有“myclass”类的div标记

var vardoc = web.Load("<any website url>"); 
var varmyclass = doc.DocumentNode.SelectSingleNode("//div[@class='myclass']"); 
var vardoc=web.Load(“”);
var varmyclass=doc.DocumentNode.SelectSingleNode(//div[@class='myclass']);
当我使用上面的方法时,我得到了“myclass”的内部html内容,但在我的html内容中有许多具有类“myclass”的div标记。
我想让所有使用HTMLagility或其他功能具有相同类的
在这种情况下不要选择单个节点

您正在使用
SelectSingleNode
,它将只返回一个节点

改用
选择节点

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

在这种情况下,不要选择单个节点

您正在使用
SelectSingleNode
,它将只返回一个节点

改用
选择节点

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

您几乎是在XML文档中搜索这些节点

首先,选择一个只返回1的节点。您需要使用SelectNodes

例如:

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

更新-删除了我的Xpath建议,因为它没有像我想象的那样工作…

您正在搜索XML文档以查找这些节点

首先,选择一个只返回1的节点。您需要使用SelectNodes

例如:

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

更新-删除了我的Xpath建议,因为它没有像我认为的那样工作…

两个问题,第一个问题是,您应该使用
SelectNodes()
,而不是像其他答案所指出的那样,因为您要选择多个节点

另外,XPath有点限制。它将只获取只有一个类的
div
元素,
myclass
,但不包括那些有多个类的元素。我想你也应该包括这些。与其检查类是否相等,不如检查它是否包含它

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

有两个问题,第一个是您应该使用
SelectNodes()
,正如其他答案所指出的,因为您要选择多个节点

另外,XPath有点限制。它将只获取只有一个类的
div
元素,
myclass
,但不包括那些有多个类的元素。我想你也应该包括这些。与其检查类是否相等,不如检查它是否包含它

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