다음 HTML을 구문 분석하려고합니다. "제목"값을 가진 h4 태그 아래의 모든 링크의 innertext를 가져와야합니다.
<h4>Title</h4>
<ul>
<li>
<a>One</a>
</li>
<li>
<a>Two</a>
</li>
<li>
<a>Three</a>
</li>
</ul>
다음 코드를 사용하여 h4 요소를 확인할 수 있습니다.
var links = document.DocumentNode.SelectNodes("//h4[contains(text(),'Title')]");
문제는 노드를 얻으려고 시도 할 때 발생합니다. 다음 코드를 시도했지만 아무도 작동하지 않습니다.
var urls = member.SelectNodes(".//a");
foreach (var url in urls)
{
Console.WriteLine(url.InnerText);
}
내가 수집 할 수있는 것으로부터, 당신이 사용하고있는 xpath가 a 노드가 h4 노드의 자식이라고 기대하기 때문에 작동하지 않는다고 생각합니다. 테스트하지 않았으므로 요구 사항을 해석하지 못할 수도 있습니다 ...
var links = document.DocumentNode.SelectNodes("//h4[contains(text(),'Title')]/following-sibling::*[1]//a");
이렇게하면 h4 노드의 첫 번째 형제 노드에있는 모든 노드가 생성됩니다. 따라서 예제 HTML에서는 ul 노드 내의 모든 노드를 가져야합니다.
희망이 도움이