2012-03-29 21 views
1

私はテキスト領域を持っています。 すべてのhtmlコードを入力できるようにhtmlマークアップを入力できます。HTMLテキストをプレーンテキストに変換する

今私はそれが

を行うことができますか...サードパーティ製のツールを使用せずにプレーンテキストにしたHTMLコードを変換したい現在、私は以下のようにそれをやっている: -

var desc = Convert.ToString(Html.Raw(Convert.ToString(drJob["Description"]))); 

drJob [ "Description"]は説明を取り出すところからのデータローです。記述をプレーンテキストに変換したいのですが。

+0

可能な複製:http://stackoverflow.com/questions/731649/how-can-i-convert-html-to-text-in-c –

答えて

0

あなたは、単にこれを行うには、.NETからの直接的な方法はありません「[^>] +> <」

2

正規表現を使用して置き換える方法を使用することができます。あなたはHtmlAgilePackのようなサードパーティのツールに頼るか、javascriptでこれを行う必要があります。

document.getElementById('myTextContainer').innerText = document.getElementById('myMarkupContainer').innerText; 

安全のため、正規表現を使用しないでください。 (http://www.codinghorror.com/blog/2009/11/parsing-html-the-cthulhu-way.html

1

あなたはより多くの明確化が必要な場合は、私に教えてくださいSystem.Text.RegularExpressions.Regex

String desc = Regex.Replace(drJob["Description"].ToString(), @"<[^>]*>", String.Empty); 
0
using System.Text.RegularExpressions; 

    private void button1_Click(object sender, EventArgs e) 
    { 
     string sauce = htm.Text; // htm = your html box 
     Regex myRegex = new Regex(@"(?<=^|>)[^><]+?(?=<|$)", RegexOptions.Compiled); 
     foreach (Match iMatch in myRegex.Matches(sauce)) 
     { 
      txt.AppendText(Environment.NewLine + iMatch.Value); //txt = your destination box 
     } 

    } 

を使用して、空の文字列にhtmlタグを置き換えることができます。

[編集:]これはクリーンな機能ではないことに注意してください。空白または改行をクリーンアップするために行を追加してください。しかし、中間のタグからのテキストの実際の取得はうまくいくはずです。スペースを節約したい場合 - regexを使い、これがうまくいくかどうか確認してください。正規表現をきれいにしていない人は正しいが、他の方法があるかもしれない。正規表現は通常、HTMLから単一のタイプのタグを分離するときに優れています。 (私はレインメーターのものを解析するためにそれを使用し、問題は一度もありません)

関連する問題