HTML 민첩성 팩으로 DOM 트래버스

.net asp.net c# html html-agility-pack

문제

HTMLAgilityPack 라이브러리로 C #에서 HTML DOM을 구문 분석하고 특정 요소에 도달하면 DOM을 트래버스하는 방법을 알고 싶습니다.

예를 들어, "일류"클래스의 td 도달하면 세 번째 형제 td 로 이동하여 중첩 된 anchorhref 를 가져오고 싶습니다.

<td class="some-class">Content I care about</td>
<td>Content I don't want</td>
<td>Content I don't want</td>
<td>    
    <a href="http://www.the-url-I-want.com">Some Amazing URL</a>
</td>

현재, 나는에 착륙하고있어 td 내가 통해 원하는 :

<td class="some-class">Content I care about</td>
<td>Content I don't want</td>
<td>Content I don't want</td>
<td>    
    <a href="http://www.the-url-I-want.com">Some Amazing URL</a>
</td>

누구든지 HTMLAgility 팩을 사용하여 개별 td 대한 관련 앵커를 잡는 방법을 알고 있습니까?

인기 답변

XPath를 배우면 작업이 훨씬 쉬워 질 수 있습니다. 예를 들어 클래스 속성이 "some-class"인 <td> 요소를 가져 오려면이 Xpath를 사용할 수 있습니다.

//td[@class='some-class']

다음 형제 자매가되기 위해 <td> :

//td[@class='some-class']

따라서 루프는 다음과 같이 다시 작성할 수 있습니다.

//td[@class='some-class']

BTW, GetAttributeValue() 메서드를 사용하여 특성 값을 가져 오는 더 안전한 방법은 :

//td[@class='some-class']

두 번째 인수는 속성을 찾을 수 없을 때 반환되는 기본값입니다.




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