【问题标题】:How to get the value of the table using HtmlAgilityPack如何使用 HtmlAgilityPack 获取表的值
【发布时间】:2017-02-07 06:27:59
【问题描述】:

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

<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

【问题讨论】:

  • 您到底在寻找什么? tds 里面的文字?
  • @HungCao 美好的一天。我需要在 td 中获取 div 值。以及 td 标签内的 href 属性值。谢谢

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


【解决方案1】:

你可以试试这样的东西,我没有测试过,但希望你能理解背后的想法

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", "");
                    }
                }
            }

【讨论】:

    猜你喜欢
    • 2011-03-19
    • 2013-04-25
    • 2016-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多