C# 如何从具有相同类属性的HTML中获取所有元素?
我正在开发一个asp.net应用程序,因为我使用htmlagility dll获取所有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("//
标记,这些标记都是相同的类属性。。
如何从整个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);