Html Agility Pack - 循環遍歷行和列

asp.net c# html-agility-pack

如何在具有屬性id或名稱的表和行中循環以在每個td單元格中深入獲取內部文本?我在asp.net,c#和最新的html敏捷包上工作。請指導。謝謝。

一個html文件有幾個表。其中一個有一個屬性id = main-part。在該標識的表中,有許多行。其中一些行具有相同的屬性name = display。在那些命名的行中,有許多列我必須從中提取文本。像這樣的東西:

<body>
<table>
...
</table>
<table>
...
</table>

<table id="main-part">
   <tr>
     <td></td>
     ...
   </tr>
   <tr>
     <td></td>
     ...
   </tr>
   <tr name="display">
     <td>Jan</td>
     <td>Feb</td>
     <td>Mar</td>
     ...
   </tr>
      <tr name="display">
     <td>Apr</td>
     <td>May</td>
     <td>June</td>
     ...
   </tr>
      <tr name="display">
     <td>Jul</td>
     <td>Aug</td>
     <td>Sep</td>
     ...
   </tr>
   <tr>
     <td></td>
     ...
   </tr>
   <tr name="display">
     <td>Oct</td>
     <td>Nov</td>
     <td>Dec</td>
     ...
   </tr>
   <tr>
     <td></td>
     ...
   </tr>
</table>
<table>
...
</table>
</body>

一般承認的答案

您需要使用xpath選擇這些節點:

foreach(HtmlNode cell in doc.DocumentElement.SelectNodes("//tr[@name='display']/td")
{
   // get cell data
}

熱門答案

有效!非常感謝Oded。

    HtmlDocument doc = new HtmlDocument();
         doc.Load(@"C:/samplefolder/sample.htm"); 
foreach(HtmlNode cell in doc.DocumentNode.SelectNodes("//tr[@name='display']/td")) 
{
         string test = cell.InnerText;
         Response.Write(test); 
}

它顯示了像JanFebMarAprMayJuneJulAugSepOctNovDec的結果。我怎樣才能將它們分類,用空格或標籤分隔?謝謝。



Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow