2011-07-27 17 views
7

HTMLアジリティパックのサポートが必要です!Htmlアジリティパックを使用したHTML BODYノードからの内部テキストの抽出

基本的に、私はのプレーンテキストを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 

しかし、まだ運を!

アドバイス???

+1

[Htmlの敏捷性パックを使用してHTMLからグラブすべてのテキスト](の可能性重複http://stackoverflow.com/questions/4182594/grab-all-text-from-html- with-html-agility-pack) – richard

答えて

13

方法について:

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

こんにちはジェフ、私は早くもそれを試みましたが、返されたデータには、&、{、}、たくさんのhtmlタグ付けやスクリプトタグなどの望ましくない文字がたくさんあります。行間は窓からちょうど外れています:)おそらく私はそれを修正する正規表現を使用することができます。しかし、私はHtml Agility Packにもっと集中したいと思っています。 – Kevin

+0

望ましくないもののHTMLを取り除くことを除いて、あなたができることはあまりありません。 InnerTextには、要素に含まれていないドキュメント内に表示されるすべての要素が含まれます。したがって、空白やスクリプトノードのコードなどが含まれます。ウェブブラウザでレンダリングされたように見えるようにテキストを取得することが目標の場合は、この方法で取得することはできません。 –

+0

あなたは何を意味しているのか分かります。おそらく私はinnertextとplaintextと混同しているでしょう。主な目的は、きれいなテキストやそれに含まれるメインテキストコンテンツを持つ解析済みのHTMLを取り戻すことです。このことについてどうやったらどうなるか教えてください。 – Kevin

関連する問題