2011-09-19 5 views
0
<table class="result" summary="Summary Description."> 
<tbody> 
<tr> 
    <th scope="col" class="firstcol">Column 1</th> 
    <th scope="col">Column 2</th> 
    <th scope="col">Column 3</th> 
    <th scope="col" class="lastcol">Column 4</th> 
</tr> 
<tr class="even"> 
    <td class="firstcol">Text 1</td> 
    <td>Text 2</td> 
    <td>4Text 3</td> 
    <td class="lastcol">Text 4</td> 
</tr> 
</tbody></table> 

La partie du code HTML qui m'intéresse ressemble à ceci. Je veux Texte 1, Texte 2, Texte 3 et Texte 4. En utilisant HTMLAgilityPack, comment puis-je extraire ces données? Je google et vérifié ce site, mais n'a pas trouvé quelque chose qui correspond exactement à mon scénario.Extraction de texte HTML spécifique à l'aide de HTMLAgilityPack

 if (htmlDoc.DocumentNode != null) 
     { 
      foreach (HtmlNode text in htmlDoc.DocumentNode.SelectNodes(???) 
      { 
       ??? 
      } 
     } 

Répondre

1

Essayez ceci:

 var html = @"<table class=""result"" summary=""Summary Description.""> <tbody> <tr>  <th scope=""col"" class=""firstcol"">Column 1</th>  <th scope=""col"">Column 2</th>  <th scope=""col"">Column 3</th>  <th scope=""col"" class=""lastcol"">Column 4</th> </tr> <tr class=""even"">  <td class=""firstcol"">Text 1</td>  <td>Text 2</td>  <td>4Text 3</td>  <td class=""lastcol"">Text 4</td> </tr> </tbody></table>"; 
     var doc = new HtmlDocument(); 
     doc.LoadHtml(html); 
     var textNodes = doc.DocumentNode.SelectNodes(@"//tr[@class='even']/td/text()").ToList(); 
     foreach(var textNode in textNodes) 
     { 
      Console.WriteLine(textNode.InnerText); 
     } 
+0

fonctionne comme un rêve! Merci beaucoup. – mdc

+0

Une question de suivi. S'il y a aussi une classe appelée "impair", et que je veux avoir une liste telle qu'elle est dans la source (Even, Odd, Even, Odd Etc). Comment pourrais-je écrire la question alors? Aujourd'hui, je viens de sauvegarder le "impair" à une deuxième liste en échangeant le mot "pair" à "impair", puis ajouté la deuxième liste à la première liste. Mais alors ils auront le mauvais ordre car il aura tous les "pairs" au début et tous les "impairs" à la fin. – mdc

+0

Et s'ils sont dynamiques comme dans ma question? http://stackoverflow.com/questions/24018750/how-to-use-htmlagilitypack-to-extract-html-data – SearchForKnowledge

Questions connexes