迭代每个表并获取信息

时间:2012-02-27 00:20:47

标签: c# html-agility-pack

我需要从两个表中获取信息:

  

http://pastebin.com/BzbKPH2i

我迭代每张桌子,每张桌子都从 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
}

1 个答案:

答案 0 :(得分:0)

问题是内部foreach循环 - 您正在选择文档中的所有 tbody节点,您真正想要所有子节点当前节点 - 只需删除正斜杠:

foreach (HtmlNode ordProcessor in orderingProcessor.SelectNodes("tbody/tr/td"))