Select 单 table 行使用 HtmlAgilityPack 并迭代其链接

Select single table row using HtmlAgilityPack and iterate its links

我尝试迭代单个 table 行及其 href 链接,但它没有按预期工作,它没有找到选定的行及其链接,而是找到了 table 中的所有链接..我做错了什么?

                        var allRows = doc.DocumentNode.SelectNodes("//table[@id='sortingTable']/tr");

        var i = 0;
        var rowNumber = 0;
        foreach (var row in allRows)
        {
            if (row.InnerText.Contains("Text in cell for which row I want to use"))
            {
                rowNumber = i+1;
                break;
            }
            i += 1;
        }

        var list = new List<SortFile>();
        var rowToRead = allRows[rowNumber]; // One specific row

        var numberOfLinks = rowToRead.SelectNodes("//a[@href]"); // this does not find the 2 links in the table row but all links in the whole table?

        foreach (HtmlNode link in rowToRead.SelectNodes("//a[@href]"))
        {
            //HtmlAttribute att = link.Attributes["href"];
            //var text = link.OuterHtml;
        }

您使用的 XPath (//a[@href]) 将获取文档中的所有链接。 // 表示从文档根目录开始查找任何内容。

您应该使用.//a[@href]从当前节点开始,select所有链接。这只会获取您 select 编辑的 tr 节点下的链接。