htmlagilitypack : div 내에서 두 번째 표 찾기

c# html-agility-pack

문제

그 안에 3 개의 테이블이있는 div 에서 정보를 구문 분석하려고합니다. 문제없이 처음부터 정보를 얻을 수 있습니다.

코드는 다음과 같습니다.

HtmlAgilityPack.HtmlWeb doc = new HtmlAgilityPack.HtmlWeb();
HtmlAgilityPack.HtmlDocument htmldocObject = doc.Load(URL);
var res = htmldocObject.DocumentNode.SelectSingleNode("//div[@class='BoxContent']");

var firstTable = res.SelectSingleNode("//table");
var charName = firstTable.ChildNodes[i++].InnerText.Substring(5).Trim();

<div class="BoxContent">
    <table>
        <tr bgcolor=#505050>
            <td colspan=2 class=white>
            <b>I'm getting this text</b>
            </td>
        </tr>
        <tr bgcolor=#F1E0C6>
            <td>I get this too</td>
            <td>I'm getting this as well</td>
        </tr>
    </table>
    <table>
        <tr>
            <td>Trying to retrieve this</td>
        </tr>
    </table>
</div>

HAP을 사용하여 두 번째 테이블 정보를 어떻게 찾을 수 있습니까?

나는 nextsibling 함수에 대해 읽었지만 제대로 작동하지는 않습니다.

수락 된 답변

var secondTable = res.SelectSingleNode("//table[2]");

인기 답변

Xpath 문자열을 변경하여 <td> 태그 대신 직접 시도해 볼 수 있습니다.

HtmlNodeCollection tdNodeCollection = htmldocObject
                                     .DocumentNode
                                     .SelectNodes("//div[@class = 'BoxContent']//td");

foreach (HtmlNode tdNode in tdNodeCollection)
{
     Console.WriteLine(tdNode.InnerText);
}



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