2012-07-28 53 views
1

我從使用C#的網站爲我自己的網站抓取了一張表並將其加載到字符串中。有太多列,所以我想知道是否有一個簡單的方法來刪除一些,可能使用HTML敏捷包,但在C#中,如果有必要。使用HTML敏捷包刪除表列

字符串中的表看起來像這樣:

<table> 
     <tr> 
      <th scope="col">&nbsp; </th> 
      <th scope="col">&nbsp; </th> 
      <th scope="col">P </th> 
      <th scope="col">W </th> 
      <th scope="col">L </th> 
      <th scope="col">T </th> 
      <th scope="col">NR </th> 
      <th scope="col">Bat </th> 
      <th scope="col">Bowl </th> 
      <th scope="col">Pen </th> 
      <th scope="col">Pts </th> 
     </tr> 
     <tr> 
      <td>1 </td> 
      <td><a href="fixbyteam.aspx?clubid=44576&teamid=58170&divid=32181">Rayleigh 2nd</a> </td> 
      <td>12 </td> 
      <td>8 </td> 
      <td>1 </td> 
      <td>0 </td> 
      <td>3 </td> 
      <td>14 </td> 
      <td>52 </td> 
      <td>0 </td> 
      <td>209 </td> 
     </tr> 
     <tr> 
      <td>2 </td> 
      <td><a href="fixbyteam.aspx?clubid=44612&teamid=58169&divid=32181">Rainham 1st</a> </td> 
      <td>12 </td> 
      <td>8 </td> 
      <td>1 </td> 
      <td>1 </td> 
      <td>2 </td> 
      <td>12 </td> 
      <td>56 </td> 
      <td>-15 </td> 
      <td>199 </td> 
     </tr> 
     <tr class="lineAbove"> 
      <td>3 </td> 
      <td><a href="fixbyteam.aspx?clubid=44571&teamid=58162&divid=32181">Old Chelmsfordians 2nd</a> </td> 
      <td>12 </td> 
      <td>5 </td> 
      <td>5 </td> 
      <td>0 </td> 
      <td>2 </td> 
      <td>10 </td> 
      <td>48 </td> 
      <td>0 </td> 
      <td>148 </td> 
     </tr> 
     <tr> 
      <td>4 </td> 
      <td><a href="fixbyteam.aspx?clubid=44570&teamid=58161&divid=32181">Little Baddow 2nd</a> </td> 
      <td>12 </td> 
      <td>5 </td> 
      <td>4 </td> 
      <td>0 </td> 
      <td>3 </td> 
      <td>21 </td> 
      <td>43 </td> 
      <td>-15 </td> 
      <td>144 </td> 
     </tr> 
     <tr> 
      <td>5 </td> 
      <td><a href="fixbyteam.aspx?clubid=44606&teamid=58159&divid=32181">Rayne 1st</a> </td> 
      <td>12 </td> 
      <td>5 </td> 
      <td>4 </td> 
      <td>0 </td> 
      <td>3 </td> 
      <td>6 </td> 
      <td>39 </td> 
      <td>0 </td> 
      <td>140 </td> 
     </tr> 
     <tr> 
      <td>6 </td> 
      <td><a href="fixbyteam.aspx?clubid=44605&teamid=58158&divid=32181">Terling 1st</a> </td> 
      <td>12 </td> 
      <td>4 </td> 
      <td>5 </td> 
      <td>1 </td> 
      <td>2 </td> 
      <td>12 </td> 
      <td>35 </td> 
      <td>0 </td> 
      <td>129 </td> 
     </tr> 
     <tr> 
      <td>7 </td> 
      <td><a href="fixbyteam.aspx?clubid=44602&teamid=58154&divid=32181">Willow Herbs 1st</a> </td> 
      <td>12 </td> 
      <td>4 </td> 
      <td>6 </td> 
      <td>0 </td> 
      <td>2 </td> 
      <td>9 </td> 
      <td>34 </td> 
      <td>0 </td> 
      <td>117 </td> 
     </tr> 
     <tr> 
      <td>8 </td> 
      <td><a href="fixbyteam.aspx?clubid=50925&teamid=68864&divid=32181">Ongar 1st</a> </td> 
      <td>12 </td> 
      <td>3 </td> 
      <td>5 </td> 
      <td>0 </td> 
      <td>4 </td> 
      <td>3 </td> 
      <td>42 </td> 
      <td>-5 </td> 
      <td>108 </td> 
     </tr> 
     <tr class="lineAbove"> 
      <td>9 </td> 
      <td><a href="fixbyteam.aspx?clubid=44607&teamid=58163&divid=32181">Sandon Sports 1st</a> </td> 
      <td>12 </td> 
      <td>3 </td> 
      <td>6 </td> 
      <td>0 </td> 
      <td>3 </td> 
      <td>8 </td> 
      <td>27 </td> 
      <td>0 </td> 
      <td>98 </td> 
     </tr> 
     <tr> 
      <td>10 </td> 
      <td><a href="fixbyteam.aspx?clubid=44582&teamid=58156&divid=32181">Little Waltham 2nd</a> </td> 
      <td>12 </td> 
      <td>1 </td> 
      <td>9 </td> 
      <td>0 </td> 
      <td>2 </td> 
      <td>14 </td> 
      <td>25 </td> 
      <td>0 </td> 
      <td>65 </td> 
     </tr> 
    </table> 

我想刪除列8-10(蝙蝠,碗和筆)。我不確定從哪裏開始,所以任何指針都會有所幫助!

+1

你有什麼困難? [你有什麼嘗試](http://whathaveyoutried.com)?就目前而言,您還沒有在您的問題中提供足夠的信息 - 我們需要知道您已經嘗試了什麼,並在我們提供幫助之前查看您的代碼。 – Oded 2012-07-28 09:31:02

+0

**這個**指針可能會有所幫助:) 0x05FA95 – totten 2012-07-28 09:31:46

+0

Oded - 我是一個HTML敏捷包的完整新手,所以我沒有嘗試過任何東西 - 我注意到谷歌搜索有一些潛在的循環,但我沒有真的讓我的頭靠近它,直到你的答案!謝謝!恩斯 - 我不明白,對不起! – 2012-07-28 10:08:21

回答

2

您需要遍歷每個tr,並從每個節點中刪除第8,9,10個節點的td節點。

bool first = true; 
foreach (HtmlNode row in doc.DocumentNode.SelectNodes("//tr")) 
{ 
    if (first) 
    { 
     row.RemoveChild(row.SelectSingleNode("th[10]")); 
     row.RemoveChild(row.SelectSingleNode("th[9]")); 
     row.RemoveChild(row.SelectSingleNode("th[8]")); 
     first = false; 
    } 
    else 
    { 
     row.RemoveChild(row.SelectSingleNode("td[10]")); 
     row.RemoveChild(row.SelectSingleNode("td[9]")); 
     row.RemoveChild(row.SelectSingleNode("td[8]")); 
    } 
} 
+0

完美的作品,我學到了東西,謝謝。 – 2012-07-28 09:58:21

+0

請注意,它不是0索引。它在內容中有所提及,但在我瀏覽時忽略了它,並且很困惑爲什麼'td [0]'被拋出爲空。 – 2017-12-15 20:37:51