如何使用HTML敏捷性包从HTML文件的主体获取文本的第一段。我正在构建一个DIGG风格的链接提交工具,并希望获得标题和文本的第一段。题目很简单,有什么建议可以让我从正文中得到第一段文字吗?我想它可能在P或DIV之内,这取决于页面。

最佳答案

这是你控制的html吗?如果是的话,你可以给p一个id或者一个类,然后通过

//p[@id=\"YOUR ID\"] or //p[@class=\"YOUR CLASS\"]

编辑:
既然你不控制html,也许下面的方法就行了。它接受所有HtmlTextNodes并尝试查找大于指定阈值的文本分组。这远不是完美的,但可能会让你朝着正确的方向前进。
String summary = FindSummary(page.DocumentNode);

private const int THRESHOLD = 50;
private String FindSummary(HtmlAgilityPack.HtmlNode node) {
    foreach (HtmlAgilityPack.HtmlNode childNode in node.ChildNodes) {
        if (childNode.GetType() == typeof(HtmlAgilityPack.HtmlTextNode)) {
            if (childNode.InnerText.Length >= THRESHOLD) {
                return childNode.InnerText;
            }
        }

        String summary = FindSummary(childNode);
        if (summary.Length >= THRESHOLD) {
            return summary;
        }
    }

    return String.Empty;
}

关于html - HTML Agility Pack-获取页面摘要,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1783850/

10-10 08:55