html - 使用 HtmlAgilityPack 获取 html 表的最后一个 <tr>

标签 html html-table html-agility-pack

我有一个 html 表格结构。我需要获取第一个<td>的值在决赛中 <tr>标签。这是我的表结构。我从下面的函数 getFinalNodeValue 中需要的值是“3”。

 <table id="test">
            <tr>
                <td>ID</td>
                <td>Name</td>
                <td>Age</td>
            </tr>
            <tr>
                <td>1</td>
                <td>Yasoda</td>
                <td>21</td>
            </tr>

            <tr>
                <td>2</td>
                <td>Samantha</td>
                <td>25</td>
            </tr>

            <tr>
                <td>3</td>
                <td>Sajee</td>
                <td>26</td>
            </tr>

        </table>


这是我使用 HtmlAgilityPack 编写的代码。

 public String getFinalNodeValue(String URL)
        {
            var webGet = new HtmlWeb();
            var pageSource = webGet.Load(URL);

            var table = pageSource.DocumentNode.SelectSingleNode("//table[@id='test']//tr[1]");


            string id = null;


            IEnumerable<HtmlNode> trNodes = table.DescendantsAndSelf();

            foreach (var currentItem in trNodes)
            {
                if (currentItem == trNodes.Last())
                {
                    IEnumerable<HtmlNode> tdNodes = currentItem.Descendants();

                    foreach (var x in tdNodes)
                    {
                        if(x == tdNodes.First())
            {
                id = x.InnerText;
            }
            else
            {
                break;
            }
                    }

                }
                else
                {
                    continue;
                }
            }

            return id;

        }

该方法没有返回值。非常感谢任何帮助。

最佳答案

应该这样做:

    HtmlDocument doc = new HtmlDocument();
    doc.Load(MyHtmlFile);

    HtmlNode node = doc.DocumentNode.SelectSingleNode("//table[@id='test']/tr[last()]/td");
    Console.WriteLine(node.InnerText);

注意 XPATH last() 的用法功能

关于html - 使用 HtmlAgilityPack 获取 html 表的最后一个 <tr>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15339142/

相关文章:

web-scraping - 我怎样才能只为导航菜单抓取网站

vb.net - Google Chrome 提供的 XPath 不正确

c# - 使用 HtmlAgilityPack 从两个 html 节点之间获取文本

javascript - 建立一个进度表,使步骤和仪表对齐

html - 使标题图像与工作按钮部分重叠固定导航栏

html - 使用 CSS 将表样式设置为 ASCII 艺术表

php - 从mysql中检索数据并显示在html表中

html - 2个div,大小可变,中间边距固定

HTML5 视频 onended 事件触发一次

html - 如何显示每页 10 行的表格?