html 민첩성 팩 구문 분석 테이블

c# html-agility-pack

문제

나는 이런 식탁을 가지고있다.

<table border="0" cellpadding="0" cellspacing="0" id="table2">
    <tr>
        <th>Name
        </th>
        <th>Age
        </th>
    </tr>
        <tr>
        <td>Mario
        </td>
        <th>Age: 78
        </td>
    </tr>
            <tr>
        <td>Jane
        </td>
        <td>Age: 67
        </td>
    </tr>
            <tr>
        <td>James
        </td>
        <th>Age: 92
        </td>
    </tr>
</table>

그리고 그것을 분석하는 html 민첩성 팩을 사용하고 있습니다. 이 코드를 시도했지만 예상 된 결과가 반환되지 않습니다. 코드는 다음과 같습니다.

foreach (HtmlNode tr in doc.DocumentNode.SelectNodes("//table[@id='table2']//tr"))
            {
                //looping on each row, get col1 and col2 of each row
                HtmlNodeCollection tds = tr.SelectNodes("td");
                for (int i = 0; i < tds.Count; i++)
                {
                    Response.Write(tds[i].InnerText);
                }
            }

반환 된 내용에 대한 처리를하고 싶기 때문에 각 열을 가져옵니다.

내가 도대체 ​​뭘 잘못하고있는 겁니까?

인기 답변

바깥 쪽 foreach 루프에서 셀 내용을 가져올 수 있습니다.

foreach (HtmlNode td in doc.DocumentNode.SelectNodes("//table[@id='table2']//tr//td"))  
{  
    Response.Write(td.InnerText);   
}  

또한 트리밍을 권장하고 내부 텍스트의 내용을 깨끗하게 정리하는 것이 좋습니다.

Response.Write(HtmlEntity.DeEntitize(td.InnerText).Trim())

출처에서 [Age : 78] 및 [Age : 92]의 셀은 <td> 대신 <th> 태그가 시작됩니다.



Related

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