我尝试迭代单个表行并且它的一个href链接但它不能按预期工作,而不是找到所选行及其链接它找到表中的所有链接..我做错了什么?
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;
}
答案 0 :(得分:0)
您正在使用的XPath(//a[@href]
)将获取文档中的所有链接。 //
表示从文档根目录开始查找任何内容。
您应该使用.//a[@href]
从当前节点开始并选择所有链接。这只会获取您选择的tr
节点下的链接。