Извлечение определенного текста HTML с использованием HTMLAgilityPack - PullRequest
0 голосов
/ 19 сентября 2011
<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>

Интересующая меня часть HTML выглядит следующим образом.Я хочу, чтобы текст 1, текст 2, текст 3 и текст 4. Используя HTMLAgilityPack, как я могу извлечь эти данные?Я зашел на Google и проверил этот сайт, но не нашел ничего, что точно соответствовало бы моему сценарию.

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

1 Ответ

1 голос
/ 19 сентября 2011

Попробуйте это:

        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);
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...