HtmlAgilityPack을 사용하여 HTML에서 부모 행 노드의 수를 얻는 방법

c# html-agility-pack

문제

아래 내 HTML 페이지입니다 :

Html 민첩성 팩을 사용하여 메인 테이블 메인 행을 가져와야합니다. 아래 페이지의 의미, 주 테이블 아래에만 주 테이블 세 개 및 주 행 세 개.

모든 내부 TR을 제외하고 3의 카운트를 얻어야합니다.

도와주세요.

HTML :

  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html>
    <head>
        <title>Untitled Page</title>

    </head>
    <body style="width: 800">
        <table  width="700" style="background-repeat: no-repeat;">
            <tr>
                <td>
                    <table width="700">
                        <tr>
                            <td width="20%"></td>
                            <td width="60%" align="center" style="font-family: Arial; font-size: 12pt;"> SUMMARY </td>
                            <td width="20%"></td>
                        </tr>
                    </table>
                </td>
            </tr>
            <tr>
                <td>
                    <table width="700">
                        <tr>
                            <td width="20%"></td>
                            <td width="60%" align="center" style="font-family: Arial; font-size: 12pt;"> SUMMARY </td>
                            <td width="20%"></td>
                        </tr>
                    </table>
                </td>
            </tr>
            <tr>
                <td>
                    <table width="700">
                        <tr>
                            <td width="20%"></td>
                            <td width="60%" align="center" style="font-family: Arial; font-size: 12pt;"> SUMMARY </td>
                            <td width="20%"></td>
                        </tr>
                    </table>
                </td>
            </tr>
        </table>
    </body>
    </html>

코드 :

  var doc = new HtmlAgilityPack.HtmlDocument();
            doc.LoadHtml(htmlFile);


          int count = 1;
          HtmlNodeCollection tables = doc.DocumentNode.SelectNodes("//table");
          foreach (HtmlNode table in tables)
          {

              var rows = doc.DocumentNode.SelectNodes("//tr");
              //here i need to get those 3 rows only.
              //but instead i am getting all inner TR also.

              foreach (HtmlNode tr in rows)
              {

              }
          }

수락 된 답변

모든 테이블을 선택하고 있습니다.

다음과 같이 본문의 자식 테이블 만 선택해보십시오.

SelectSingleNode("//body/table");

그런 다음 해당 노드의 TR을 계산하십시오.

또는 한 번에 모두 해보십시오.

SelectNodes("//body/table/tr");


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