나는 같은 클래스 속성입니다 모든 <div>
태그를 얻기 위해 htmlagility dll을 사용하여 한 asp.net 응용 프로그램을 개발 ..
전체 HTML 페이지에서 같은 클래스를 가진 모든 요소를 얻는 방법,
나는 class = 'myclass'를 가지고있는 최상위 div를 얻었지만,
내 경우에는 'myclass'클래스를 가진 모든 div 태그를 원한다.
var vardoc = web.Load("<any website url>");
var varmyclass = doc.DocumentNode.SelectSingleNode("//div[@class='myclass']");
위 메서드를 사용하면 'myclass'의 내부 HTML 내용을 가져 오지만 HTML 내용에는 클래스 'myclass'가있는 div 태그가 많이 있습니다. HTML5 또는 다른 클래스를 사용하는 동일한 클래스를 가진 모든 <div>
를 얻고 싶습니다.
이 경우 단일 노드를 선택하지 마십시오.
하나의 노드 만 리턴하는 SelectSingleNode
를 사용 중입니다.
대신에 SelectNodes
를 사용하십시오 :
var varmyclass = doc.DocumentNode.SelectNodes("//div[@class='myclass']");
두 가지 문제는 먼저 여러 노드를 선택하려고 했으므로 다른 대답이 지적한대로 SelectNodes()
대신 사용해야한다는 것입니다.
또한 XPath는 약간 제한적입니다. myclass
는 하나의 클래스 만 가지고 div
클래스는 여러 클래스를 포함하지 않는 div
요소 만 가져옵니다. 나는 그것들을 포함시키고 싶다고 생각합니다. 클래스가 같은지 검사하는 대신 클래스가 동일한 지 확인하십시오.
var xpath = "//div[contains(@class,'myclass')]";
var query = doc.DocumentNode.SelectNodes(xpath);