我需要从两个表中获取信息:
我迭代每张桌子,每张桌子都从 td
获取信息但是我得到了两次信息而 orderingText 填充了x2,所以为了防止第二次迭代,我设置了一个中断来阻止它,但我认为不是如何运作HtmlAgilityPack或我做错了什么
// Get the node from the div
//
HtmlNode orderingProcNode = docProcSpecs.DocumentNode.SelectSingleNode("//div[@id='orderingordering']");
string[] orderingText = new string[1024];
int t = 0;
// Iterate each table
foreach (HtmlNode orderingProcessor in orderingProcNode.SelectNodes("//table[@class='noSort infoTable']"))
{
foreach (HtmlNode ordProcessor in orderingProcessor.SelectNodes("//tbody//tr//td"))
{
// Here I get all the info from the two tables instead of one table
//
orderingText[t++] = ordProcessor.InnerText.Trim();
}
break; // this is the solution
}
答案 0 :(得分:0)
问题是内部foreach
循环 - 您正在选择文档中的所有 tbody
节点,您真正想要所有子节点当前节点 - 只需删除正斜杠:
foreach (HtmlNode ordProcessor in orderingProcessor.SelectNodes("tbody/tr/td"))