2011-09-28 79 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); 
相关问题