HTML 민첩성 팩 구문 분석

asp.net-mvc html html-agility-pack

문제

HTML Agility Pack을 처음 접했습니다. 나는 약간의 문서를 찾고 있지만 몇 가지 문제를 가지고 노력하고있다.

다음 코드가 있습니다.

<div class="person">
<a href="blah1.html">Person 1</a>
</div>
<div class="person">
<a href="blah2.html">Person 2</a>
</div>
<div class="person">
<a href="blah3.html">Person 3</a>
</div>
<div class="person">
<a href="blah4.html">Person 4</a>
</div>

파서를 사용하여 클래스 사용자가있는 div 내의 링크 만 잡는 방법은 무엇입니까?

고맙습니다!

수락 된 답변

Html Agility Pack (NuGet에서 사용 가능) :

HtmlDocument html = new HtmlDocument();
html.Load(path_to_html); // or html.LoadHtml(html_string)           
var links = html.DocumentNode.SelectNodes("//div[@class='person']/a")
                .Select(n => n.GetAttributeValue("href", null));

보고:

HtmlDocument html = new HtmlDocument();
html.Load(path_to_html); // or html.LoadHtml(html_string)           
var links = html.DocumentNode.SelectNodes("//div[@class='person']/a")
                .Select(n => n.GetAttributeValue("href", null));

인기 답변

다음 XPath는 설명에 해당합니다.

//div[@class='person']/a/@href

이것은 반환 href 제의 특성 어떤 요소 바로 아래에있는 a div 소자와 class 와 동일 속성 person .

jQuery 스타일 선택기가 더 편한 경우 HTML 민첩성 팩 대신 CsQuery 를 사용 하십시오 .




아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.