나는 이런 식탁을 가지고있다.
<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>
태그가 시작됩니다.