如何使用HtmlAgilityPack获取表的值

时间:2017-02-07 06:27:59

标签: html winforms webbrowser-control html-agility-pack

我需要获取表格的内容。下面是我的表

<tr class="oddRow" id="activeFiles25472825Row">
    <td>Author Photo</td>
    <td></td>
    <td>
        <div id="active_25472825_CALLOUT" class="fileTruncateCallout" style="position:absolute; display:none">JCS.jpg</div>
    </td>
    <td>01/28/2017</td>
    <td>30.7 KB</td>
    <td>Member</td>
    <td>
        <a href="https://google.com.download">download</a>
    </td>
</tr>

这是我的代码。但我不知道接下来会发生什么。我试着获得我需要的价值,但我不能让它发挥作用。它没有给我输出或错误

HtmlAgilityPack.HtmlDocument newdoc = new HtmlAgilityPack.HtmlDocument();
                    newdoc.LoadHtml(htmlString);
                    GeckoElementCollection links = wb.Document.GetElementsByTagName("td");
                    foreach (var itm in links)
                    {
}

输出 是

姓名:JCS.jpg 链接:https://google.com.download

1 个答案:

答案 0 :(得分:2)

你可以尝试这样的事情,我没有测试它,但希望你理解背后的想法

foreach (var td in newDoc.DocumentNode.Descendants("td"))
            {
                var div = td.ChildNodes.FirstOrDefault(c => c.Name.Equals("div") && c.GetAttributeValue("class", "").Equals("fileTruncateCallout"));
                if (div != null)
                {
                    var name = div.InnerText;
                }
                else
                {
                    var aNode = td.ChildNodes.FirstOrDefault(c => c.Name.Equals("a"));
                    if(aNode != null)
                    {
                        var href = aNode.GetAttributeValue("href", "");
                    }
                }
            }