Html Agility Pack을 사용하여 html 태그 노드 위치를 찾는 방법

c#-3.0 html html-agility-pack

문제

HTML 민첩성 팩을 사용하여 내 HTML 문자열 내에서 다른 HTML 태그의 시작 / 끝 위치를 찾으려고합니다.

샘플 HTML 문자열 :

This is a <a href="https://en.wikipedia.org/wiki/Health">custom</a> made html string that will serve as an example for the <a href="http://stackoverflow.com">StackOverflow</a> question described above.

성공적으로 코드를 실행 한 후 나는 다음과 같이는 A 태그의 시작 인덱스의 값으로 2 개 배열을 얻을 필요가 :

int[] startIndex = new int[] { 11, 124 };
int[] endIndex = new int[] { 68, 176 };

11 (125)가 태그 (68) 및 (175)의 시작을 표시하는 인덱스 위치 어디 동일한 태그의 마지막 인덱스 위치를 나타낸다.

htmlNode를 사용하여 htmlNode 팩을 사용하면 시작 인덱스와 함께 innerHtml.Lenght 요소와 함께 HTML 요소의 끝 인덱스 위치를 계산할 수있는 LinePosition 값을 얻을 수 있다는 것을 알고 있습니다.

나는 다음을 사용하여 a 요소를 계산할 수있었습니다.

int aNodesCount =  htmlDoc.DocumentNode.SelectNodes("//a").Count;

그리고 이제 모든 것을 반복하고 각각의 LinePosition 값을 가져와야합니다. 이것은 내가 갇혀있는 곳이다.

인기 답변

글쎄, 그것은 꽤 간단해서 나는 다른 사람들이 똑같은 문제를 겪고있는 자신에 대한 답을 게시 할 것이다 :

foreach (HtmlNode aNode in htmlDoc.DocumentNode.SelectNodes("//a"))
{
    startIndex.Add(aNode.LinePosition);
    endIndex.Add(aNode.LinePosition + aNode.OuterHtml.Length);
}


Related

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