使用Html Agility Pack从HTML BODY节点提取内部文本

时间:2011-07-27 22:49:24

标签: c# html vb.net html-agility-pack

需要HTML Agility Pack的帮助!

基本上我想用HTML的正文节点抓取纯文本。 到目前为止,我已经在vb.net中尝试了这个并且它无法返回innertext的含义 没有看到变化,至少从我能看到的变化。

Dim htmldoc As HtmlDocument = New HtmlDocument
htmldoc.LoadHtml(html)

Dim paragraph As HtmlNodeCollection = htmldoc.DocumentNode.SelectNodes("//body")

If Not htmldoc Is Nothing Then
   For Each node In paragraph
       node.ParentNode.RemoveChild(node, True)
   Next
End If

Return htmldoc.DocumentNode.WriteContentTo

我试过这个:

Return htmldoc.DocumentNode.InnerText

但仍然没有运气!

任何建议???

2 个答案:

答案 0 :(得分:16)

怎么样:

Return htmldoc.DocumentNode.SelectSingleNode("//body").InnerText

答案 1 :(得分:0)

如果您没有表格,Jeff的解决方案是可以的,因为表格中的文本像cell1cell2cell3一样粘着。 为避免此问题,请使用以下代码(C#示例):

var words = doc.DocumentNode?.SelectNodes("//body//text()")?.Select(x => x.InnerText);
return words != null ? string.Join(" ", words) : String.Empty;