Html Agility Pack: scorre le righe e le colonne

asp.net c# html-agility-pack

Domanda

Come posso effettuare il looping tra la tabella e la riga che hanno un id o nome attributo per ottenere il testo interno in fondo a ogni cella? Lavoro su asp.net, c # e sul nuovo pacchetto di agilità html. Per favore guida. Grazie.

Un file html ha diverse tabelle. Uno di loro ha un attributo id = main-part. In quella tabella identificata, ci sono molte righe. Alcune di queste righe hanno lo stesso nome attributo = display. In quelle file con nome, ci sono molte colonne da cui estrarre il testo. Qualcosa come questo:

<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>

Risposta accettata

È necessario selezionare questi nodi usando xpath:

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

Risposta popolare

Ha funzionato! Grazie mille 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); 
}

Ha mostrato risultati come JanFebMarAprMayJuneJulAugSepOctNovDec . Come posso ordinarli, separati da uno spazio o una scheda? Grazie.



Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché