2012-11-08 4 views
0

웹 사이트의 데이터로 가득 찬 HTML 표를 긁어 내려고했습니다. 불행하게도, 테이블의 소스 코드는 다음과 같습니다HTML 민첩성 팩을 사용하여 조작 된 HTML 처리

<table border="1" cellspacing="0" cellpadding="3"> 

<tr> 
<td bgcolor="silver"><font face="arial,helvetica" size="1">Last Name</font></td> 

<td bgcolor="silver"><font face="arial,helvetica" size="1">First Name</font></td> 

<td bgcolor="silver"><font face="arial,helvetica" size="1">Middle</font></td> 
</tr> 

<td valign="top"><font face="arial,helvetica" size="1"> 
Data</font></td> 

<td valign="top"><font face="arial,helvetica" size="1"> 
Data</font></td> 

<td valign="top"><font face="arial,helvetica" size="1"> 
Data</font></td> 
</tr> 

<td valign="top"><font face="arial,helvetica" size="1"> 
More Data</font></td> 

<td valign="top"><font face="arial,helvetica" size="1"> 
More Data</font></td> 

<td valign="top"><font face="arial,helvetica" size="1"> 
More Data</font></td> 
</tr> 
</table> 

주 헤더 이후 각 행에 대해 "TR"태그를 응시의 부족. 테이블은 브라우저에서 잘 보이지만 html 민첩성 팩은 시작 태그가없는 tr 요소를 인식하지 못합니다. 어쨌든이 문제를 해결하기 위해 html 민첩성 팩을 구할 수 있습니까? 이드는 자신이 직접 tr 태그를 삽입하지는 않겠지 만,해야한다면 그렇게 할 것이다.

답변

1
당신은 3 개 항목으로 td의 그룹을 구문 분석을 시도 할 수 있습니다

,

var list = doc.DocumentNode.Descendants("td") 
      .Select((td, i) => new { td, i }) 
      .GroupBy(x => x.i/3) 
      .Select(g => g.Select(t => t.td.InnerText).ToList()) 
      .ToList(); 
관련 문제