如何使用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/