使用 HTMLAgilityPack 提取特定的 HTML 文本

发布于 2024-12-05 12:02:04 字数 888 浏览 1 评论 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>

我感兴趣的 HTML 部分如下所示。我想要文本 1、文本 2、文本 3 和文本 4。使用 HTMLAgilityPack,如何提取该数据?我用谷歌搜索并检查了这个网站,但没有找到与我的场景完全匹配的内容。

        if (htmlDoc.DocumentNode != null)
        {
            foreach (HtmlNode text in htmlDoc.DocumentNode.SelectNodes(???)
            {
                ???
            }
        }
<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>

The part of the HTML Im interested in looks like this. I want Text 1, Text 2, Text 3 and Text 4. Using HTMLAgilityPack, how can I extract that data? I google and checked this site but didnt find something that matched my scenario exactly.

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

说谎友 2024-12-12 12:02:04

试试这个:

        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);
        }

Try this:

        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);
        }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文