我有一個文本區域。 我允許輸入html標記,因爲可以輸入任何html代碼。將HTML文本轉換爲純文本
現在我要轉換的是HTML代碼,以純文本格式,而無需使用第三方工具......如何能不能做到
目前我做它象下面這樣: -
var desc = Convert.ToString(Html.Raw(Convert.ToString(drJob["Description"])));
drJob [ 「Description」]是我從中獲取描述的數據行,並且我想將描述轉換爲純文本。
我有一個文本區域。 我允許輸入html標記,因爲可以輸入任何html代碼。將HTML文本轉換爲純文本
現在我要轉換的是HTML代碼,以純文本格式,而無需使用第三方工具......如何能不能做到
目前我做它象下面這樣: -
var desc = Convert.ToString(Html.Raw(Convert.ToString(drJob["Description"])));
drJob [ 「Description」]是我從中獲取描述的數據行,並且我想將描述轉換爲純文本。
您可以簡單地用一個使用正則表達式替換法「< [^>] +>」
有從.NET來做到這一點的直接方式。您或者需要訴諸第三方工具,比如HtmlAgilePack,或者在javascript中執行此操作。
document.getElementById('myTextContainer').innerText = document.getElementById('myMarkupContainer').innerText;
爲了您的安全,請勿使用正則表達式。 (http://www.codinghorror.com/blog/2009/11/parsing-html-the-cthulhu-way.html)
可以使用System.Text.RegularExpressions.Regex
String desc = Regex.Replace(drJob["Description"].ToString(), @"<[^>]*>", String.Empty);
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標籤。
[編輯:]請注意,這不是一個乾淨的功能,所以添加一行來清理空白空間或換行符。但實際從中間標籤獲取文本應該可以正常工作。如果你想節省空間 - 使用正則表達式,看看這是否適合你。雖然發佈關於正則表達式不清潔的人是正確的,但可能有其他方法;從HTML分離單一類型的標籤時,正則表達式通常更好。 (我用雨量計來解析東西,從來沒有任何問題)
可能的重複:http://stackoverflow.com/questions/731649/how-can-i-convert-html-to-text-in-c – 2013-05-10 20:13:10